var contractTypeJudge=0
var addFlag = true;
var delFlag = true;
var flagIsMember = true;
var urlCustomer='/customerController/getCustomerList' // 会员新单合同客户名称/customerController/getCustomerList
var urlParam;   // url所带参数集合

$(function () {
    urlParam = getRequest();
    // console.log(urlParam);

    //2会员新单合同
    //1非会员合同
    contractTypeJudge = urlParam.tag;
    // contractTypeJudge = $("#multitabs_info_3").context.location.search.split('=')[1];
    // console.log(contractTypeJudge)
    if(contractTypeJudge==2 || contractTypeJudge==1){
        $(".member-contract").hide()
    }

    if(contractTypeJudge==3){
        $(".active-contract").hide()
    }

    $('#paymentMethod').selectpicker({
        sanitize: true,
        size: 10
    }).on('changed.bs.select', function () {
        if ($(this).val() == 3) {
            // 余额支付重置并隐藏合作开发人员
            hideCooperate();
        } else if ($(this).val() == 2) {
            // 线下支付显示合作开发人员
            $('.cooperate-well').show();
        }
    });

    timeData('contractDate', 'contractDate', 'customerForm');

    // 上传图片
    $(document).on('click', '.file-browser', function () {
        var file = $(this).closest('.file-group').find('[type="file"]');
        var fileID = file.attr('id');
        var showID = file.nextAll('.img-box').attr('id');
        file.on('click', function (e) {
            e.stopPropagation();
            uploadPreview({
                fileID,
                showID
            });
        })
        .on('change', function () {
            file.trigger('click');
        })
        file.trigger('click');
    });

    // 解决table中点击行选中与checkbox冲突问题
    $('table').on('load-success.bs.table', function (e,data) {
        $(e.target).find('label.lyear-checkbox').on('click', function (e) {
            e.stopPropagation();
        })
    });


    /**
     * 设置开关 addFlag = true
     * 新建合同页面为 true，产品列表更新时执行关联赠品方法 getProductGift
     * 编辑页面初始化时为 false, 产品列表回显之后更新为 true，产品列表更新时执行关联赠品方法 getProductGift
     * */


    if (contract) {
        addFlag = false;
        if (!addFlag) {
            $('input[type="file"]').addClass('editinput');
        }
        // 编辑页面
        //客户名称下拉框加载-contract在html中定义
        getCustomerAssociateSelect();
        $('#customerList').attr('disabled', contract).selectpicker('refresh');
        setTimeout(function () {
            $('.img-box').eq(0).html('<img src="' + contract.contractAnnexAccessUrl + '">')
            $('.img-box').eq(1).html('<img src="' + contract.reviewAnnexAccessUrl + '">')//审核

            //合同附件
            $('#contractPic').val(contract.contractAnnexId);
            //合同审核
            $('#examinedPic').val(contract.reviewAnnexId);
            //合作开发人员回显
            for(let i=0;i<contract.coDeveloperList.length;i++){
                $('#cooperateInput').tagsinput('add',contract.coDeveloperList[i])
            }
            // 将产品列表编辑回显直接插入行
            $('#productTable').bootstrapTable('append', contract.productEditArr);
            addFlag = true;
            // 活动产品列表
            $('#productActivityTable').bootstrapTable('append', contract.productActivityEditArr);
            // 赠品列表
            var giftData = contract.giftEditArr;
            // 回显赠品数据新增默认giftListId字段，解决编辑产品数据重复添加相关赠品，而默认数据不会被删除的问题
            for (var i = 0; i < giftData.length; i++) {
                giftData[i].giftListId = 'default';
            }
            $('#giftTable').bootstrapTable('append', giftData);

            //附加费用
            if (contract.productOrder.orderSurcharge) $('.surcharge-remarks').show();
            $('#surcharge').val(contract.productOrder.orderSurcharge);
            $('#orderSurchargeRemark').val(contract.productOrder.orderSurchargeRemark)
            $('#contractReviewNotes').val(contract.contractReviewNotes)

            //    合同总金额
            $("#totalAmount").html(contract.contractTotalAmount)
            $("#discountAmount").html(contract.contractDiscountTotalAmount) //合同优惠总金额

            $("#realAmount").html(contract.contractActualTotalAmount)//合同实际总金额
            $("#receivables").html(contract.contractReceivables)//应收款

        },500)
    } else {
        $('form select').selectpicker({
            sanitize: true,
            size: 10
        });
    }

    // 上传图片

    // 附加费用
    $('#surcharge').on('change', function () {
        if ($(this).val() == '' || $(this).val() == '0') {
            $('.surcharge-remarks').hide();
        } else {
            $('.surcharge-remarks').show();
        }
        priceTotal();
    })

    // 合作开发
    getCooperate();

    /**
     * 合同类型处理
     * 会员续费合同时，显示：合同续费、提前/延期原因
     * */
/*    $('#contractType').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
        if (clickedIndex == '3') {
            $('.renew-label').removeClass('hidden');
        } else {
            $('.renew-label, .renew-reason').addClass('hidden');
            $('#contractRenewal').val('').selectpicker('refresh');
            $('#advancePostponementReason').val('');
        }
    });*/
/*    $('#contractRenewal').on('changed.bs.select', function (e, clickedIndex) {
        if (clickedIndex == '1') {
            $('.renew-reason').addClass('hidden');
            $('#advancePostponementReason').val('');
        } else {
            $('.renew-reason').removeClass('hidden');
        }
    });*/

    // 日期选择控件
    $('#collectionDate').datepicker({
        language: "zh-CN",
        autoclose: true,
        clearBtn: true,
        todayHighlight: true,
        format: "yyyy-mm-dd"
    });

    // 初始化会员产品表
    productMember();

    // 活动产品列表
    $('#productActivityTable').bootstrapTable({
        class: 'table table-bordered table-hover table-striped',
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        pagination: false,//是否显示分页
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        uniqueId: 'productActivityId',
        toolbar: '#productActivityTableToolbar',
        detailView: true,
        detailFormatter: function(index,row){
            var html = '';
            $.ajax({    // 获取活动相关产品
                type: "post",
                url: "/customerProductActivity/selectCustomerProductActivityById",
                data: {
                    productActivityId:  row.productActivityId
                },
                dataType: 'json',
                async: false,
                success: function (data, status) {
                    if(data.code == '000000') {
                        for (var i = 0; i < data.data.customerProductList.length; i++) {
                            html += '<span class="label label-info">' + data.data.customerProductList[i].productName + '</span>';
                        }
                    }
                },
                error:function(){
                    $.alert("操作失败,请稍后再试!");
                }
            });
            return html;
        },
        columns: [
            {title: '主键', field: 'productActivityId', visible: false},
            {title: '主键', field: 'ifMemberActivity', visible: false},
            {title: '活动名称', field: 'productActivityName', align: 'left', valign: 'middle'},
            {title: '活动原价', field: 'activityPrice', align: 'left', valign: 'middle'},
            {title: '当前报价', field: 'activityDiscountPrice', align: 'left', valign: 'middle', width: '160', events: activityFormat.priceEvent, formatter: activityFormat.discountPrice},
            {title: '购买数量', field: 'activityNumber', align: 'left', valign: 'middle', width: '160', events: activityFormat.numberEvent, formatter: activityFormat.number},
            {title: '操作', field: 'activityOperation', align: 'left', valign: 'middle', width: '100', formatter: activityFormat.operation},
        ],
        onPostBody(data) {
            $('#productActivityTable').bootstrapTable('expandAllRows');     // 展开所有行
            // 设置开关，如果当前报价为空，不进行合同金额计算
            /*var totalFlag = Boolean(data.length);
            if (!totalFlag) {
                return;
            }*/
            var totalFlag = true;
            var examineFlag = false;

            var productPriceTotal = 0;              // 产品总金额    = 活动原价 * 数量
            var valuationTotal = 0;                 // 计价总计      = 当前报价 * 数量

            for (var i = 0; i < data.length; i++) {
                valuationTotal += data[i].activityDiscountPrice * data[i].activityNumber * 100;
                productPriceTotal += data[i].activityPrice * data[i].activityNumber * 100;
                if (data[i].activityDiscountPrice == '') {
                    totalFlag = false;
                }
                // 当前报价小于会员价 && 不为空 => 触发审核
                if (data[i].activityDiscountPrice < data[i].activityPrice && data[i].activityDiscountPrice != '') {
                    examineFlag = true;
                    $('#examineType').val('1');
                } else {
                    $('#examineType').val('0');
                }
            }

            // 还原数值
            productPriceTotal = productPriceTotal / 100;                // 产品总金额    = 活动原价 * 数量
            valuationTotal = valuationTotal / 100;                      // 计价总计      = 当前报价 * 数量

            // 优惠券按钮开关
            if (data.length == 1 && totalFlag) {
                $('#couponTableToolbar button').prop('disabled', false);
            } else {
                $('#couponTableToolbar button').prop('disabled', true);
                $('#couponTable').bootstrapTable('removeAll');
            }

            // 表格右上方计价总计赋值
            $('#productActivityTotal').html(valuationTotal);
            // 隐藏域赋值：计价总计
            $('#productTotalInput').val(valuationTotal);
            // 产品总金额
            $('#productDiscountTotalInput').val(productPriceTotal);

            // 统计价格: 报价不为空进行总价计算并判断是否触发审批，为空则合同金额归零
            if (totalFlag) {
                // 价格统计
                priceTotal();
                // 审核判断：报价小于会员价则触发审批
                if (examineFlag) {
                    // 触发审核
                    $('.approval').show(0);
                } else {
                    // 不触发审核
                    $('.approval').hide(0);
                    $('.approval').find('input, textarea').val('');
                }
            } else {
                // 当前报价为空时，合同金额归零处理并隐藏审核条件
                $('#totalAmount, #discountAmount, #realAmount, #receivables').html('0');
                $('.approval').hide(0);
                $('.approval').find('input, textarea').val('');
            }
        }
    });

    // //活动产品合同跳转页面初始化
    var rowActive=JSON.parse(sessionStorage.getItem('row'))
    var index=0
    $('#productActivityTable').bootstrapTable('refresh');
    if (rowActive){
        $('#productActivityTable').bootstrapTable('append', rowActive);
        // $('#productActivityTable').bootstrapTable('updateRow', {index: 0, row: rowActive});


    }


    // 赠品列表
    $('#giftTable').bootstrapTable({
        class: 'table table-bordered table-hover table-striped',
        striped: true,                      // 是否显示行间隔色
        sortable: true,                     // 是否启用排序
        pagination: false,                  // 是否显示分页
        minimumCountColumns: 2,             // 最少要显示的列数
        undefinedText: '-',            // cell没有值时显示
        uniqueId: 'productGiftActivityId',
        detailView: true,
        detailViewByClick: true,
        detailViewIcon: false,
        detailFormatter:function(index,row){
            var giftListArr = row.giftProductList;
            var html = '';
            for (var i = 0; i < giftListArr.length; i++) {
                html += '<span class="label label-warning">' + giftListArr[i].productName + '</span>';
            }
            return html;
        },
        columns: [
            {title: '主键', field: 'productGiftActivityId', visible: false},
            {title: '标识', field: 'giftListId', visible: false},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle', formatter: giftFormat.name},
            {title: '价格区间', field: 'giftActivityPrice', align: 'left', valign: 'middle', formatter: giftFormat.price},
            {title: '活动名称', field: 'giftActivityName', align: 'left', valign: 'middle'},
            {title: '活动类型', field: 'giftCategoryName', align: 'left', valign: 'middle'},
            {title: '活动有效期', field: 'giftPeriodValidity', align: 'left', valign: 'middle', formatter: giftFormat.periodValidity},
            {title: '操作', field: 'giftOperate', align: 'right', valign: 'middle', width: '100', formatter: giftFormat.operate},
        ],
        onPostBody(data) {
            $('#giftTable').bootstrapTable('expandAllRows');
        }
    });


    // 优惠券列表
    $('#couponTable').bootstrapTable({
        class: 'table table-bordered table-hover table-striped',
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        pagination: false,//是否显示分页
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        uniqueId: 'chsCustomerCouponId',
        toolbar: '#couponTableToolbar',
        columns: [
            {title: '主键', field: 'chsCustomerCouponId', visible: false},
            {title: '优惠券名称',field: 'couponName', align: 'left', valign: 'middle'},
            {title: '优惠券类型', field: 'couponType',align: 'left', valign: 'middle', formatter: couponFormat.couponType},
            {title: '优惠券额度', field: 'couponQuota',align: 'left', valign: 'middle',
                formatter: function (value, row, index) {
                    return value == '0' ? undefined : value;
                }
            },
            {title: '优惠券优惠折扣', field: 'couponDiscount',align: 'left', valign: 'middle',
                formatter: function (value, row, index) {
                    return value == '0' ? undefined : value;
                }
            },
            {title: '操作', field: 'giftOperate', align: 'right', valign: 'middle', formatter: couponFormat.operation},
        ],
        onPostBody: function (data) {
            priceTotal();
        },
    });

    // 弹窗关闭之后清空弹窗的搜索条件并重置表格
    $('.modal').on('hidden.bs.modal', function () {
        $(this).find('.input-group input[type="text"]').val('');
        // $(this).find('#productCategories input').prop('checked', false);
        // $(this).find('#productCategories input:first').prop('checked', true);
        // $(this).find('table').bootstrapTable('refresh');
    });




    $('#addProductModal').on('show.bs.modal', function () {
        // 初始化弹窗内容
        $('#productCategories label').show().find('input').prop('disabled', false);
        $('#productCategories label:first-child input').prop('checked', 'checked');
        $('#productCategories input').off();

        // 非会员合同添加产品 高会产品判断：已包含高会产品不能添加非高会产品
        var selectedProductData = $('#productTable').bootstrapTable('getData', true);
        if (contractTypeJudge == 1) {
            console.log('非会员产品合同');
            var ajaxUrl = '/customerProduct/selectCustomerProductList';
            var ajaxContentType = 'application/x-www-form-urlencoded';
            if (selectedProductData.length > 0) {
                var content = '';
                if (selectedProductData[0].serviceClassification == '高级会计') {
                    $('#productCategories label:nth-child(2) input').prop('checked', true);
                    content = '当前合同产品列表已添加“高会产品”，不能同时添加“非会员产品”！';
                } else {
                    $('#productCategories label:nth-child(1) input').prop('checked', true);
                    content = '当前合同产品列表已添加“非会员产品”，不能同时添加“高会产品”！';
                }
                contractProductList(ajaxUrl, productQueryParams, ajaxContentType, true);
                $('#productCategories input:checked').on('click', function () {
                    $('#searchProductName').val('');
                    contractProductList(ajaxUrl, productQueryParams, ajaxContentType, true);
                }).parent().siblings('label').find('input').on('click', function (e) {
                    e.preventDefault();
                    $.alert({
                        title: '系统提醒',
                        content,
                        scrollToPreviousElement: false,
                        scrollToPreviousElementAnimate: false,
                    });
                    return;
                })
            } else {
                contractProductList(ajaxUrl, productQueryParams, ajaxContentType, true);
                $('#productCategories input').on('click', function () {
                    $('#searchProductName').val('');
                    contractProductList(ajaxUrl, productQueryParams, ajaxContentType, true);
                })
            }
        }
    });

    $('#addProductModal, #addProductActivityModal').on('show.bs.modal', function () {
        if (contractTypeJudge == 2) {
            console.log('会员新单合同');
            contractProductList('/customerMemberProduct/selectContractMemberProductList',dataContract,'application/json;charset=utf-8')
        } else if (contractTypeJudge == 1) {
            /*console.log('非会员产品合同');
            contractProductList('/customerProduct/selectCustomerProductList',productQueryParams,'application/x-www-form-urlencoded', true)
            $('#productCategories input').on('click', function () {
                contractProductList('/customerProduct/selectCustomerProductList',productQueryParams,'application/x-www-form-urlencoded', true)
            })*/
        } else if (contractTypeJudge == 3) {
            console.log('活动产品合同');
            productActivityListTable();
        }
    });

    $('#productSearch').on('click', function () {
        if (contractTypeJudge == 2) {
            console.log('会员新单合同');
            search.call(this, $('#productListTable'), dataContract);
        } else if (contractTypeJudge == 1) {
            console.log('非会员产品合同');
            search.call(this, $('#productListTable'), productQueryParams);
        }

    });

    $('#activitySearch').on('click', function () {
        search.call(this, $('#productActivityListTable'), activityQueryParams);
    });

    // 优惠券弹窗相关功能
    $('#addCouponModal').on('show.bs.modal', function () {
        $('#couponCategories label:first-child input').prop('checked', true);
        couponTable(true);
    }).on('click', '#couponSearch', function () {
        search.call(this, $('#couponListTable'), couponQueryParams);
    }).on('click', '#couponCategories input', function () {
        $('#searchCouponName').val('');
        $(this).val() == '1' ? couponTable(true) : couponTable(false, 'checkbox');
    });

    // 初始化合作开发人员列表
    cooperateTable();
    // 初始化合作开发人员列表-分公司下拉菜单
    companiesList();
    $('#accountList').selectpicker();

    if(contractTypeJudge==2){
        getCustomerSelect(contract,urlCustomer);
        $('.approval').show(0);
    }
});

/**
 * 功能：合作开发人员列表初始化
 * */
function cooperateTable() {
    $('#cooperateTable').bootstrapTable('destroy');
    $('#cooperateTable').bootstrapTable({
        class: 'table table-bordered table-hover table-striped',
        striped: true,                  // 是否显示行间隔色
        sortable: true,                 // 是否启用排序
        pagination: false,              // 是否显示分页
        minimumCountColumns: 2,         // 最少要显示的列数
        undefinedText: '-',             // cell没有值时显示
        uniqueId: 'userId',
        toolbar: '#cooperateTableToolbar',
        columns: [
            {title: '主键', field: 'userId', visible: false},
            {title: '主键', field: 'companyId', visible: false},
            {title: '合作开发人员姓名', field: 'userName', align: 'left', valign: 'middle'},
            {title: '分配金额', field: 'allocationMount',align: 'left', valign: 'middle',
                events: {
                    'change input': function (e, value, row, index) {
                        var inputValue = $($(e.target)[0]).val().replace(/^\D*(\d*(?:\.\d{0,4})?).*$/g, '$1');
                        inputValue = parseInt(inputValue);
                        if (inputValue == 0) {
                            promptInfo('分配金额必须大于零，请重新输入！', function () {
                                $($(e.target)[0]).val('');
                            });
                            return;
                        }
                        $($(e.target)[0]).val(inputValue);
                        // 输入新值，先清空当前分配金额
                        row.allocationMount = '';
                        // 计算总计分配金额是否超过合同实际总金额
                        var flag = cooperateAmount(inputValue);
                        if (flag) {
                            // 未超过直接赋值
                            row.allocationMount = inputValue;
                        } else {
                            promptInfo('分配金额总和不能大于合同实际总金额，请重新输入！', function () {
                                $($(e.target)[0]).val('');
                                row.allocationMount = '';
                            });
                        }
                    }
                },
                formatter: function (value, row, index) {
                    var html = '<input type="text" class="form-control" value="' + (value || '') + '" id="allOcation-' + index + '" style="width: 200px;">';
                    return html;
                }
            },
            {title: '操作', field: 'couponDiscount', align: 'right', valign: 'middle', width: '120',
                formatter: function (value, row, index) {
                    var html = '<button type="button" class="btn btn-default btn-danger" onclick="removeRow(this, \'' + row.userId + '\')"><i class="mdi mdi-delete"></i>删除</button>';
                    return html;
                }
            },
        ],
        onPostBody: function (data) {
            // priceTotal();
        },
    });
}

/**
 * 功能：初始化分公司列表
 * 接口：罗杰
 * */
function companiesList() {
    $.ajax({
        url: '/sysCompany/selectCompanies',
        type: 'GET',
        dataType: "json",
        success: (function (data) {
            if (data.code == "000000") {
                var dataList = data.data;
                var selectOption = '';
                for (let i = 0; i < dataList.length; i++) {
                    selectOption += '<option value="' + dataList[i].companyId + '">' + dataList[i].companyName + '</option>';
                }
                $('#companiesList').selectpicker('destroy');
                $('#companiesList').html(selectOption).selectpicker({
                    size: 10
                });
            }
        }),
        error: (function (res) {
            $.alert({
                title: '错误提醒',
                content: '分公司列表数据请求失败'
            });
        })
    })
}

/**
 * 功能：根据所选分公司初始化人员列表
 * */
function getAccountList(element) {
    $('#addCooperateBtn').prop('disabled', true);

    var companyId = $(element).val();
    $.ajax({
        // url: '/account/getAccountListByCompanyId',
        url: '/account/getAccountByCompanyIdExcludeLoginPerson',
        type: 'GET',
        dataType: "json",
        data: {
            companyId
        },
        success: (function (data) {
            if (data.code == "000000") {
                var dataList = data.data;
                var selectOption = '';
                for (let i = 0; i < dataList.length; i++) {
                    selectOption += '<option value="' + dataList[i].accountId + '">' + dataList[i].userName + '</option>';
                }
                $('#accountList').selectpicker('destroy').html(selectOption).prop('disabled', false).selectpicker({
                    size: 10
                }).one('changed.bs.select', function (event, clickedIndex, isSelected, previousValue) {
                    $('#addCooperateBtn').prop('disabled', false);
                })
            }
        }),
        error: (function (res) {
            $.alert({
                title: '错误提醒',
                content: '分公司人员数据请求失败'
            });
        })
    });
}

/**
 * 功能：新增合作开发人员
 * */
function addCooperate() {
    var companyId = $('#companiesList').val();
    var userId = $('#accountList').val();
    var userName = $('#accountList option:selected').html();

    var rowData = {
        companyId,              // 分公司Id
        userId,                 // 合作开发人员Id
        userName,               // 合作开发人员姓名
        allocationMount: ''     // 分配额度
    };

    var tableData = $('#cooperateTable').bootstrapTable('getData', true);

    if (tableData.length == 0) {
        // 直接插入
        $('#cooperateTable').bootstrapTable('append', rowData);
    } else {
        var flag = true;
        for (let i = 0; i < tableData.length; i++) {
            if (tableData[i].userId == userId) {
                flag = false;
                break;
            }
        }
        if (flag) {
            // 无重复，直接插入
            $('#cooperateTable').bootstrapTable('append', rowData);
        } else {
            // 提示有重复
            promptInfo('列表中已存在该联系人，不能重复添加！');
        }
    }
}

/**
 * 功能：分配金额计算，总计不能大于合同实际总金额
 * */
function cooperateAmount(amount) {
    // 输入值
    var amount = Number(amount);
    // 合同实际总金额
    var total = Number($('#realAmount').html());
    // 合作开发人员列表数据
    var tableData = $('#cooperateTable').bootstrapTable('getData', true);
    var tableDataTotal = 0;
    for (let i = 0; i < tableData.length; i++) {
        tableDataTotal += Number(tableData[i].allocationMount);
    }
    console.log('输入值：' + amount, '表格内已有值：' + tableDataTotal, '输入的总值：' + (amount + tableDataTotal), '合同实际金额：' + total);
    if (tableDataTotal + amount > total) {
        return false;
    } else {
        return true;
    }
}



/**
 * 功能：获取url参数
 * */
function getRequest() {
    var url = location.search; // 获取url中"?"符后的字串
    var theRequest = new Object();
    if (url.indexOf("?") != -1) {
        var str = url.substr(1);
        strs = str.split("&");
        for(var i = 0; i < strs.length; i ++) {
            theRequest[strs[i].split("=")[0]]=decodeURI(strs[i].split("=")[1]);
        }
    }
    return theRequest;
}

/**
 * 功能：优惠券
 * */
function couponTable(columnsFlag, type) {
    var choseType = type || 'radio';
    $('#couponListTable').bootstrapTable('destroy');
    $('#couponListTable').bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/coupon/selectAvailableCouponPageList',           // 请求地址
        method: 'post',                                         // 请求方式
        contentType: "application/json;charset=UTF-8",          // 请求内容类型
        dataType: "json",                                       // 数据类型
        striped: true,                                          // 是否显示行间隔色
        sortable: true,                                         // 是否启用排序
        sortOrder: "desc",                                      // 排序方式
        sortName: 'createTm',                                   // 排序字段
        cache: false,                                           // 是否使用缓存
        showColumns: false,                                     // 显示隐藏列
        showRefresh: false,                                     // 显示刷新按钮
        showToggle: false,                                      // 切换显示样式
        showFooter: false,                                      // 显示Table脚部
        pagination: true,                                       // 是否显示分页
        showPaginationSwitch: false,                            // 是否显示分页按钮
        clickToSelect: true,                                    // 是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,                                 // 最少要显示的列数
        undefinedText: '-',                                     // cell没有值时显示
        sidePagination: "server",                               // 分页方式：client客户端分页，server服务端分页
        uniqueId: 'receiveCouponId',
        idField: 'receiveCouponId',
        pageSize: 5,                                            // 每页的记录行数
        pageNumber: 1,                                          // 初始化加载第1页，默认第1页
        pageList: "[5, 10, 15, 20]",                            // 可供选择的每页的行数
        // maintainMetaData: true,
        maintainSelected :true,

        serverSelected: !columnsFlag,                           // 开启后端分页记住已选项功能
        serverSelectedField: "receiveCouponId",                 // 已选项的唯一识别主键

        queryParams: couponQueryParams,                         //查询参数
        columns: [
            {title: '主键', field: 'receiveCouponId', visible: false},
            {[choseType]: true, visible: true, width: 40},
            {title: '优惠券名称',field: 'couponName', align: 'left', valign: 'middle'},
            {title: '优惠券类型', field: 'couponType',align: 'left', valign: 'middle', formatter: couponFormat.couponType},
            {title: '优惠券额度', field: 'couponQuota',align: 'left', valign: 'middle', visible: !columnsFlag,
                formatter: function (value, row, index, field) {
                    return row.couponType == '1' ? '' : value;
                }
            },
            {title: '优惠券优惠折扣', field: 'couponDiscount',align: 'left', valign: 'middle', visible: columnsFlag,
                formatter: function (value, row, index, field) {
                    return row.couponType == '1' ? value : '';
                }
            },
            {title: '是否可叠加', field: 'useType', align: 'left', valign: 'middle', visible: !columnsFlag,
                formatter: function (value, row, index, field) {
                    return value == '0' ? '<span class="label label-success">可叠加</span>' : '<span class="label label-warning">不可叠加</span>';
                }
            },
        ],
        responseHandler: function (result) {
            if(result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function (data) {
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
        onCheck: function(row, $element) {
            var selectedRow;
            if ($('#couponCategories input:checked').val() == '1') {
                selectedRow = $('#couponListTable').bootstrapTable('getSelections');
            } else {
                selectedRow = $('#couponListTable').bootstrapTable('getServerSelected', true);
            }

            console.log(selectedRow)
            if (selectedRow.length > 1) {
                // 第一个选择的优惠券类型
                var firstChosedType = selectedRow[0].useType;   // 0-可叠加 1-不可叠加
                // 当前选择优惠券类型
                var thisChosedType = row.useType;

                if (firstChosedType == '1' || (firstChosedType == '0' && thisChosedType == '1')) {
                    console.log('不可叠加');
                    promptInfo('不可叠加优惠券不能和其他优惠券同时使用！', function () {
                        $element.trigger('click');
                    })
                }
            }
        },
        onPostBody: function () {
            $('#couponListTable th.bs-checkbox .lyear-checkbox').hide();
        }
    });
}

/**
 * 添加优惠券弹窗查询条件
 */
function couponQueryParams(params){
    var productListArr = [];
    // 会员非会员合同：获取产品table数据；活动合同：获取活动产品table数据
    if (contractTypeJudge == '1' || contractTypeJudge == '2') {
        var productDatas = $('#productTable').bootstrapTable('getData', true);
        for (let i = 0; i < productDatas.length; i++) {
            productListArr.push(productDatas[i].customerProductId);
        }
    } else {
        // 活动产品合同选择的相关活动产品id
        /*var productDatas = $('#productActivityTable').bootstrapTable('getData', true);
        for (let i = 0; i < productDatas.length; i++) {
            for (let j = 0; j < productDatas[i].productList.length; j++) {
                productListArr.push(productDatas[i].productList[j].productId);
            }
        }*/
    }
    var data = {
        pageSize : params.limit,
        pageIndex : (params.offset / params.limit) + 1,

        customerId : $('#customerList').val(),                               // 客户id
        productList : productListArr,                                        // 产品idList
        productTotalPrice : Number($('#productTotal').text()),               // 产品总价格
        couponType : $('input[name="couponCategories"]:checked').val(),      // 优惠券类型：1-折扣类 2-额度类
        couponName : $.trim($('#searchCouponName').val()),                   // 优惠券名称
    }
    return JSON.stringify(data);
}

/**
 * 获取合作开发人员名单
 * */
function getCooperate() {
    $.ajax({
        url: '/account/getAllCoDeveloper',
        type: 'get',
        dataType: "json",
        async: true,
        contentType: "application/json;charset=utf-8",
        success: (function (data) {
            if (data.code == "000000") {
                var listData = data.data;
                var cooperateInput = $('#cooperateInput');
                /*var nameArr = [];
                for (var i = 0; i < listData.length; i++) {
                    nameArr.push(listData[i].userName + ' — ' + (listData[i].userContact || '暂无联系方式'));
                }*/

                var nameDate = new Bloodhound({
                    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('userName'),
                    queryTokenizer: Bloodhound.tokenizers.whitespace,
                    local: listData
                });
                nameDate.initialize();

                cooperateInput.tagsinput({
                    itemValue: 'userId',     // 控制台返回参数
                    itemText: 'userName',       // 标签显示内容
                    typeaheadjs: {
                        displayKey: function(item) {     // 控制台返回参数
                            return item.userName + ' — ' + (item.userContact || '暂无联系方式');
                        },
                        source: nameDate.ttAdapter()
                    }
                });


            }
        })
    });
}
//

/**
 * 功能：获取产品相关赠品数据
 * */
var oldGiftListId = 'default';
function getProductGift(rowData, priceTotal) {
    // 删除相关产品时，删掉产品所带赠品
    $('#giftTable').bootstrapTable('remove', {field: 'giftListId', values: oldGiftListId});
    // 如果产品列表为空时，不进行赠品添加处理
    if (rowData.length == 0 && priceTotal == 0) {
        return;
    }
    var productIdArr = [];
    for (var i = 0; i < rowData.length; i++) {
        productIdArr.push(rowData[i].customerProductId);
    }
    var jsonData = {
        'productIdList': productIdArr,
        'giftActivityPrice': priceTotal
    }
    $.ajax({
        url: '/customerProductGiftActivity/selectProductGiftListByProductIdAndPrice',
        type: 'POST',
        dataType: "json",
        async: true,
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if (data.code == "000000") {
                var giftData = data.data;
                var giftListId = productIdArr[0];

                for (var i = 0; i < giftData.length; i++) {
                    giftData[i].giftListId = giftListId;
                }
                $('#giftTable').bootstrapTable('append', giftData);
                // 添加赠品的唯一标识符
                oldGiftListId = giftListId;
            } else {
                alert("获取产品相关赠品数据：请求失败");
            }
        }),
        error: (function (res) {
            // alert('获取产品相关赠品数据：请求失败');
        })
    });
}

/**
 * 订单信息 - 产品列表
 * 相关自定义内容
 * */
// 自定义搜索：data-表格数据, text-搜索的文字, filter-filterBy方法中的过滤器对象
/*function productTableSearch(data, text) {
    return data.filter(function (row) {
        return (row.productName + row.productCategory).indexOf(text) > -1
    });
}*/
var productFormat = {
    // 产品价格
    priceChose: function (value, row, index, field) {
        return value;
    },
    // 当前报价
    discountPrice: function (value, row, index, field) {
        var discountPriceValue;

        value == undefined ? discountPriceValue = '' : discountPriceValue = value;
        if (discountPriceValue != '') {
            discountPriceValue = parseFloat(discountPriceValue);
        }

        var inputId = 'productDiscountPrice' + index;
        var inputHtml = '<input type="text" value="' + discountPriceValue + '" placeholder="请输入" class="form-control" id="' + inputId + '">';
        row.productDiscountPrice = discountPriceValue || $(inputHtml).val();
        return inputHtml;
    },
    // 产品数量
    number: function (value, row, index, field) {
        var numberValue = Number(value) || 1;
        var inputId = 'productNumber' + index;
        var inputHtml = '<input type="text" value="' + numberValue + '" placeholder="请输入" class="form-control" id="' + inputId + '">';
        row.productNumber = numberValue || $(inputHtml).val();

        return inputHtml;
    },
    // 总计
    total: function (value, row, index, field) {
        return row.productDiscountPrice * row.productNumber;
    },
    // 操作
    operation: function (value, row, index, field) {
        return '<button type="button" class="btn btn-default btn-danger" onclick="removeRow(this, \'' + row.customerProductId + '\')"><i class="mdi mdi-delete"></i>删除</button>';
    },
    // 优惠后价格 自定义事件
    priceEvent: {
        'change input': function (e, value, row, index) {
            var newValue = productPriceTest(e, value, row);
            if (newValue == 'stop') return;

            productFormat.discountPrice(newValue, row);
            $('#productTable').bootstrapTable('updateRow', {
                index,
                replace: true,
                row
            });
        }
    },
    numberEvent: {
        'change input': function (e, value, row, index) {
            // 对数值进行判断
            var newValue = numberTest(e, value);
            if (newValue == 'stop') return;

            productFormat.number(newValue, row);
            productFormat.total(value, row, index, 'productTotal');

            $('#productTable').bootstrapTable('updateRow', {
                index,
                replace: true,
                row
            });
        }
    }
};

/**
 * 功能：产品数量判断
 * */
function numberTest(e, preValue) {
    // 移除字符串的空格
    var newVal = $(e.target).val().replace(/\s/g,"");
    if (newVal == '0') {
        promptInfo('数量必须大于等于 1，请重新输入！');
        $(e.target).val(preValue);
        return 'stop';
    }
    if (newVal % 1 !== 0 || newVal < 0 || newVal == '') {
        promptInfo('数量只能为正整数，请重新输入！');
        $(e.target).val(preValue);
        return 'stop';
    }
    if (newVal == preValue) {
        $(e.target).val(preValue);
        return 'stop';
    }
    return newVal;
}

/**
 * 功能：产品列表价格判断
 * */
function productPriceTest(e, preValue, row) {
    // 当前会员产品会员价
    var memberPrice = row.productMemberPrice;
    // 获取当前价格(移除字符串的空格)
    var newVal = $(e.target).val().replace(/\s/g,"");
    // 输入空值判断
    if (newVal == '') {
        return '';
    }
    // 输入值等于前值判断
    if (newVal == preValue) {
        $(e.target).val(preValue);
        return 'stop';
    }
    // 会员新单合同时，当前报价不能高于会员价
    if (newVal > memberPrice && contractTypeJudge == 2) {
        $(e.target).val(preValue);
        $.alert({
            title: '提示',
            content: '当前报价不能高于产品会员价，请重新输入！'
        })
        return 'stop';
    }
    // '非数字'或'小于0' 判断
    if (isNaN(newVal) || newVal < 0) {
        promptInfo("请输入正确的价格！");
        $(e.target).val(preValue);
        return 'stop';
    }
    // 允许价格是小数
    return parseFloat(newVal).toFixed(2);
    // 禁止输入小数
    // return parseInt(newVal);
}

/**
 * 活动产品列表 - 自定义内容
 * */
var activityFormat = {
    // 当前报价
    discountPrice: function (value, row, index, field) {
        var discountPriceValue;
        value == undefined ? discountPriceValue = '' : discountPriceValue = value;
        if (discountPriceValue != '') {
            discountPriceValue = parseFloat(discountPriceValue);
        }
        var inputId = 'activityDiscountPrice' + index;
        var inputHtml = '<input type="text" value="' + discountPriceValue + '" placeholder="请输入" class="form-control" id="' + inputId + '">';
        row.activityDiscountPrice = discountPriceValue || $(inputHtml).val();

        return inputHtml;
    },
    // 数量
    number: function (value, row, index, field) {
        var numberValue = Number(value) || 1;
        var inputId = 'activityNumber' + index;
        var inputHtml = '<input type="text" value="' + numberValue + '" placeholder="请输入" class="form-control" id="' + inputId + '">';
        row.activityNumber = numberValue || $(inputHtml).val();

        return inputHtml;
    },
    operation: function (value, row, index, field) {
        var html = '<button type="button" class="btn btn-default btn-danger" onclick="removeRow(this, \'' + row.productActivityId + '\')"><i class="mdi mdi-delete"></i>删除</button>';
        return html;
    },
    productList: function (value, row, index, field) {
        var html = '';
        for (var i = 0; i < value.length; i++) {
            html += '<span class="label label-info">' + value[i].productName + '</span>';
        }
        return html;
    },
    // 优惠后价格 自定义事件
    priceEvent: {
        'change input': function (e, value, row, index) {
            var newValue = productPriceTest(e, value, row);
            if (newValue == 'stop') return;

            activityFormat.discountPrice(newValue, row);

            $('#productActivityTable').bootstrapTable('updateRow', {
                index,
                replace: true,
                row
            });
        }
    },
    numberEvent: {
        'change input': function (e, value, row, index) {
            // 对数值进行判断
            var newValue = numberTest(e, value);
            if (newValue == 'stop') return;

            activityFormat.number(newValue, row);
            $('#productActivityTable').bootstrapTable('updateRow', {
                index,
                replace: true,
                row
            });
        }
    }
}

/**
 * 赠品列表 - 自定义内容
 * */
var giftFormat = {
    name: function (value, row, index, field) {
        if (row.giftCategory == '1') {
            if (value == null) {
                return '全部产品';
            } else {
                return value;
            }
        } else {
            return '-';
        }
    },
    price: function (value, row, index, field) {
        if (row.giftActivityPriceStart == null || (row.giftActivityPriceStart == 0 && row.giftActivityPriceEnd == 0)) {
            return '-';
        } else {
            return row.giftActivityPriceStart + '~' + row.giftActivityPriceEnd;
        }
    },
    periodValidity: function (value, row, index, field) {
        return row.giftPeriodValidityStart + ' 至 ' + row.giftPeriodValidityEnd
    },
    operate: function (value, row, index, field) {
        var html = '<button type="button" class="btn btn-default btn-danger" onclick="removeRow(this, \'' + row.productGiftActivityId + '\')"><i class="mdi mdi-delete"></i>删除</button>';
        return html;
    },
    detailOperate: function (value, row, index, field) {
        var html = '<label class="lyear-switch switch-solid switch-success"><input type="checkbox"><span></span></label>';
        return html;
    }
};

/**
 * 优惠券列表 - 自定义内容
 * */
var couponFormat = {
    couponType: function (value, row, index, field) {
        if (value == '1') {
            return '折扣类'
        } else {
            return '额度类'
        }
    },
    operation: function (value, row, index, field) {
        return '<button type="button" class="btn btn-default btn-danger" onclick="removeRow(this, \'' + row.chsCustomerCouponId + '\')"><i class="mdi mdi-delete"></i>删除</button>';
    }
}

/**
 * 功能：添加行
 * 参数：originalTableId - 原表格id  targetTableId - 目标表格id
 * */
function addRow(originalTableId, targetTableId) {
    // 优惠券判断
    if (originalTableId == 'couponListTable') {
        var couponList = $('#couponTable').bootstrapTable('getData', true);
        if (couponList.length) {
            $('#couponTable').bootstrapTable('removeAll');
        }
    }

    /*if(contract && originalTableId=='productListTable' && targetTableId=='productTable'){
        for(var k=0;k<contract.giftEditArr.length;k++){
            $('#giftTable').bootstrapTable('remove',{field: 'productGiftActivityId', values: contract.giftEditArr[k].productGiftActivityId} );
        }
    }*/
    var $originalTable;
    var selectRowData;
    var $targetTable = $('#' + targetTableId);
    var targetTabelDate = $targetTable.bootstrapTable('getData', true);


    if (typeof originalTableId == 'object') {
        selectRowData = originalTableId;
    } else {
        $originalTable = $('#' + originalTableId);
        // selectRowData = $originalTable.bootstrapTable('getSelections');
        if (originalTableId == 'couponListTable') {
            // 优惠券
            // selectRowData = $originalTable.bootstrapTable('getSelections');
            if ($('#couponCategories input:checked').val() == '1') {
                selectRowData = $originalTable.bootstrapTable('getSelections');
            } else {
                selectRowData = $originalTable.bootstrapTable('getServerSelected', true);
            }
        } else {
            selectRowData = $originalTable.bootstrapTable("getServerSelected", true);
        }
    }

    if (selectRowData.length == 0) {
        // 弹窗表格未选择时直接关闭弹窗
        $originalTable.parents('.modal').modal('hide');
        return;
    }

    var targetId;
    var priceField;
    var numberField;

    if (!!selectRowData[0].customerProductId) {
        // 产品列表字段
        targetId = 'customerProductId';
        priceField = 'productDiscountPrice';
        numberField = 'productNumber';
    }
    if (!!selectRowData[0].productActivityId) {
        // 活动产品列表字段
        targetId = 'productActivityId';
        priceField = 'activityDiscountPrice';
        numberField = 'activityNumber';
    }
    if (!!selectRowData[0].giftActivityName) {
        // 赠品列表字段
        targetId = 'giftActivityName';
        numberField = 'giftActivity';
    }
    if (typeof originalTableId == 'object') {
        targetId = 'productGiftActivityId';
    }
    // console.log(selectRowData);
    if (targetTabelDate.length == 0 ) {
        for (var i = 0; i < selectRowData.length; i++) {
            selectRowData[i][priceField] = '';
            selectRowData[i][numberField] = 1;
            // productMemberPrice[i].chose=
        }
        // 目标表格为空时直接插入行
        $targetTable.bootstrapTable('append', selectRowData);
    } else {
        var targetTableDateStr =  JSON.stringify(targetTabelDate);
        // 目标表格不为空判断是否已存在于表格中
        for (var i = 0; i < selectRowData.length; i++) {
            var str = '"' + targetId + '":"' + selectRowData[i][targetId] + '"';
            if (targetTableDateStr.indexOf(str) != -1) {
                lightyear.notify('所添加产品(' + selectRowData[i].productName + ')已存在，不能重复添加。', 'warning', 1200, '', 'top', 'right');
            } else {
                selectRowData[i][priceField] = '';
                selectRowData[i][numberField] = 1;
                // selectRowData[i].chose=selectRowData[i]
                $targetTable.bootstrapTable('append', selectRowData[i]);
            }
        }
    }
    if (typeof originalTableId == 'string') {
        $originalTable.parents('.modal').modal('hide');
    }
    // var productData = $('#productTable').bootstrapTable('getData', true);
}

/**
 * 功能：删除行
 * 参数：fieldId - 删除行的目标列字段名称  value - 目标字段值
 * */
function removeRow(_this, fieldId, value) {
    //.giftEditArr
    if(contract && fieldId=='customerProductId'){
        for(var i=0;i<contract.giftEditArr.length;i++){
            $('#giftTable').bootstrapTable('remove',{field: 'productGiftActivityId', values: contract.giftEditArr[i].productGiftActivityId} );
        }
    }
    // $(_this).parents('table').bootstrapTable('remove', {field: fieldId, values: value});
    $(_this).parents('table').bootstrapTable('removeByUniqueId', fieldId);
}

/**
 * 功能：价格统计显示
 * 说明：合同总金额 = 非会员产品原价(会员产品会员价) * 数量
 *      产品计价总计 = 当前报价 * 数量
 *      合同优惠总金额 = 合同总金额 - 产品计价总计 + 优惠券减免额度
 *      应收款 = 计价总计 - 优惠免减额度 + 附加费用
 * */
function priceTotal() {
    var $productTotalValue = parseFloat($('#productDiscountTotalInput').val()) || 0;                                // 合同总金额
    var $productDiscountTotalValue = parseFloat($('#productTotalInput').val()) || 0;                                // 合同计价总计 = 当前报价 * 数量
    var $surchargeValue = parseFloat($('#surcharge').val()) || 0;                                                   // 附加费用
    var $couponValue = 0;   // 优惠券免减额度

    var couponData = $('#couponTable').bootstrapTable('getData', true);
    if (couponData.length > 0) {
        if (couponData[0].couponType == 1) {
            // 折扣类优惠券：优惠价值 = 计价 - 计价 * 折扣 / 100
            $couponValue = $productDiscountTotalValue - $productDiscountTotalValue * couponData[0].couponDiscount || 0;
            // console.log('折扣类优惠券，优惠额度：', $couponValue);
        } else {
            for (let i = 0; i < couponData.length; i++) {
                $couponValue += couponData[i].couponQuota;
            }

            // 额度类优惠券：优惠价值 = 计价 - 折扣额度
            // $couponValue = couponData[0].couponQuota || 0;
            // console.log('额度类优惠券，优惠额度：', $couponValue);
        }
    }

    // 合同总金额 = 非会员产品原价(会员产品会员价) * 数量
    var totalAmountVal = $productTotalValue;
    $('#totalAmount').html(Number(totalAmountVal.toFixed(2)));

    // 合同优惠总金额 = 合同总金额 - 产品计价总计 + 优惠券减免额度
    var discountAmountVal = $productTotalValue - $productDiscountTotalValue + $couponValue
    // console.log(discountAmountVal)
    if (discountAmountVal < 0 ) {
        // console.log(discountAmountVal)
        discountAmountVal = 0;
    }
    if (discountAmountVal > $productTotalValue) {
        discountAmountVal = $productTotalValue;
    }
    $('#discountAmount').html(Number(discountAmountVal.toFixed(2)));

    // 合同实际总金额 = 计价总计 - 优惠券免减额度
    var realAmountVal = $productDiscountTotalValue - $couponValue;
    if (realAmountVal < 0) {
        realAmountVal = 0;
    }
    $('#realAmount').html(Number(realAmountVal.toFixed(2)));

    // 应收款 = 计价总计 - 优惠券免减额度 + 附加费用
    // var receivablesVal = $productDiscountTotalValue - $couponValue + $surchargeValue;
    // 应收款 = 合同实际总金额 + 附加费用
    var receivablesVal = realAmountVal + $surchargeValue;
    $('#receivables').html(Number(receivablesVal.toFixed(2)));
}

/**
 * 添加产品弹窗查询条件
 */
function productQueryParams(params){
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort;                  //排序列名
    params.sortOrder = params.order;                //排序方式
    params.tag = 0;
    //产品列表搜索条件
    params.productName = $.trim($('#searchProductName').val());         // 产品名称
    params.productCategories = $('#productModalType').val(); // 会员类型 1-会员 0-非会员
    params.ifHighTechProduct = $('#productCategories input:checked').val();
    return params;
}
/**
 * 添加活动产品弹窗查询条件
 */
function activityQueryParams(params){
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort;                  //排序列名
    params.sortOrder = params.order;                //排序方式

    //活动产品列表搜索条件
    params.searchInfo = $.trim($('#searchActivityName').val());//产品名称
    return params;
}

// 产品列表 - 添加产品弹窗列表
function dataContract(params) {
    var data={
        pageSize: params.limit,                         //页面大小
        pageIndex: (params.offset / params.limit) + 1,   //页码
        sortName: params.sort,      //排序列名
        sortOrder: params.order, //排位命令（desc，asc）
        productName: $.trim($('#searchProductName').val()),
        productCategories: $('#productModalType').val() // 会员类型
    }
    return JSON.stringify(data)
}

/**
 * 获得客户名称下拉
 */
function getCustomerSelect(contract,url){
    var contract = contract || urlParam;

    $.ajax({
        type: 'POST',
        dataType: "json",
        url: url,
        cache : false,
        data:{
        },
        async : true,
        success: (function (data) {
            if (data.code == "000000") {
                var html = '';
                $.each(data.data, function(n, value) {
                    // 判断错误数据，错误则不显示在列表中
                    if (value.memberErrorData != 1) {
                        if(contract != null && contract.customerId == value.customerId){
                            html += '<option data-type="'+value.customerType+'" value="' + value.customerId + '" selected>' +  value.customerName + '</option>';
                        } else {
                            html += '<option data-type="'+value.customerType+'" value="' + value.customerId + '">' +  value.customerName + '</option>';
                        }
                    }
                });

                // $('#customerList').html(html)

                $('#customerList').selectpicker('destroy').html(html).selectpicker({
                    sanitize: true,
                    size: 10
                }).on('changed.bs.select', function () {
                });

                // $('#customerList').selectpicker('destroy').html(html).selectpicker({
                //     sanitize: true,
                //     size: 10
                // }).on('changed.bs.select', function () {
                // });


                $("#customerList").on('shown.bs.select',function(e) {
                    var flagList = false;
                    // $('#customerList').siblings(".dropdown-menu").find("input").keyup(function () {
                    //     $('#customerList').siblings(".dropdown-menu").find("input").attr('id', "deviceInput"); //为input增加id属性

                    // })
                    $('#customerList').siblings(".dropdown-menu").find("input").on('input',function () {
                        if(!flagList){
                            if($(".no-results").html()!='undefined' && $(this).val()!=''){
                                let noResultsData=$(".no-results").html()+',请先去添加客户'

                                $(".no-results").html(noResultsData)
                                $(".location-btn").show()
                            }else{
                                $(".location-btn").hide()
                            }
                        }
                    }).on('compositionstart',function () {
                        flagList=true;
                    }).on("compositionend",function () {
                        flagList=false;
                        if($(".no-results").html()!='undefined'){
                            let noResultsData=$(".no-results").html()+'请先去添加客户'

                            $(".no-results").html(noResultsData)
                            $(".location-btn").show()
                        }else{
                            $(".location-btn").hide()
                        }
                    })
                })

                // $("#customerId").html(html).selectpicker('refresh').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {

                // });


                if (contract.customerId) {  // 判断是否有带客户id，有即是带有客户参数，禁用客户下拉框 更新联系人下拉选项
                    getCustomerAssociateSelect();
                    $('#customerList').attr('disabled', true).selectpicker('refresh');
                }
            } else {
                alert("获得客户名称下拉请求失败");
            }
        }),
        error: (function (res) {
            alert("获得客户名称下拉请求失败");
        }),
        beforeSend: function(){
            $('#customerList').selectpicker('destroy').html('<option value="加载中...">加载中...</option>')
        },
    });

}
//点击添加跳转
function onAddSelf() {
    parent.$(parent.document).data('multitabs').create({
        iframe: true,                                // 指定为iframe模式，当值为false的时候，为智能模式，自动判断（内网用ajax，外网用iframe）。缺省为false。
        title: '新增个人客户',                     // 标题（可选），没有则显示网址
        url: '/front/customerManager/addIndividualCustomer'                   // 链接（必须），如为外链，强制为info页
    }, true);// true 则激活新增的tab页
}

/**
 * 下拉客户时同时加载客户联系人和会员主合同
 */
function getCustomerAssociateSelect(){
    if (contractTypeJudge != 7) {
        var contactType = $('#customerList option:selected').data('type');
        // 切换客户后重置客户联系人、联系电话选项
        $('#customerContractList').val('').selectpicker('refresh');
        $('#customerContractName').val('');
        $('#phoneNumber').val('');

        if (contactType == 1) { // 个人客户
            $('#enContactGroup').hide();
            $('#poContactGroup').show();
            $('#phoneNumber').prop('readonly', false);
            $('#phoneNumber').prop('placeholder', '请输入联系方式');
            if ($('#customerForm').data('bootstrapValidator') != undefined) {
                // 个人客户时，验证客户名称和联系方式
                $('#customerForm').data('bootstrapValidator').updateStatus('customerContractName', 'NOT_VALIDATED');
                $('#customerForm').data('bootstrapValidator').validateField('customerContractName');
                $('#customerForm').data('bootstrapValidator').updateStatus('phoneNumber', 'NOT_VALIDATED');
                $('#customerForm').data('bootstrapValidator').validateField('phoneNumber');
            }
        } else {    // 企业客户
            $('#enContactGroup').show();
            $('#poContactGroup').hide();
            $('#phoneNumber').prop('readonly', true);
            $('#phoneNumber').prop('placeholder', '');
            if ($('#customerForm').data('bootstrapValidator') != undefined) {
                // 个人客户时，验证客户下拉列表和联系方式
                $('#customerForm').data('bootstrapValidator').updateStatus('customerContractList', 'NOT_VALIDATED');
                $('#customerForm').data('bootstrapValidator').validateField('customerContractList');
                $('#customerForm').data('bootstrapValidator').updateStatus('phoneNumber', 'NOT_VALIDATED');
                $('#customerForm').data('bootstrapValidator').validateField('phoneNumber');
            }
            //获取客户联系人下拉
            getCustomerContactPersonSelect(contract);
        }
        //获取会员主合同下拉
        getMembershipMasterContractSelect(contract);
        //获取跟进记录下拉
        getFollowWaySelect(contract);
        //获取商机列表下拉
        getOpportunitySelect(contract);

        $('#refreshOpportunityBtn').prop('disabled', false);
    }
}

/**
 *客户联系人下拉加载（先选择客户名称调用）
 */
function getCustomerContactPersonSelect(contract){
    // 修改客户名称时，解除客户联系人的绑定事件
    $('#customerContractList').off('changed.bs.select');
    $('#phoneNumber').val('');  // 清空联系人手机号

    //客户id
    var customerId = $('#customerList').val();

    $.ajax({
        type: 'GET',
        dataType: "json",
        url: '/customer/selectContactPersonListByCustomerId?customerId=' + customerId,
        success: (function (data) {
            if (data.code == "000000") {
                var html = '';
                $.each(data.data, function(n, value) {
                    if(contract != null && contract.contactId == value.customerContactPersonId) {
                        html += '<option data-phone="' + value.contactInformation + '" value="' + value.customerContactPersonId + '"  selected>' + value.contactName + ' — '+ value.contactInformation +'</option>';
                    }else {
                        html += '<option data-phone="' + value.contactInformation + '" value="' + value.customerContactPersonId + '">' + value.contactName + ' — '+ value.contactInformation +'</option>';
                    }
                });

                $('#customerContractList').html(html).attr('disabled', false).selectpicker('refresh');
                $('#customerContractList').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
                    $('#phoneNumber').val($(this).find('option').eq(clickedIndex).data('phone'));
                    if($('#customerForm').data('bootstrapValidator') != undefined){
                        $('#customerForm').data('bootstrapValidator')
                            .updateStatus('phoneNumber', 'NOT_VALIDATED',null)
                            .validateField('phoneNumber');
                    }
                })
                if (contract) {
                    $('#phoneNumber').val($('#customerContractList option:selected').data('phone'));
                }
            } else {
                alert("客户联系人下拉请求失败");
            }
        }),
        error: (function (res) {
            alert("客户联系人下拉请求失败");
        })
    });
}

/**
 * 会员主合同下拉框
 */
function getMembershipMasterContractSelect(contract) {
    //客户id
    var customerId = $('#customerList').val();
    $.ajax({
        type: 'GET',
        dataType: "json",
        url: '/customerContract/selectContractListByCustomerId?customerId=' + customerId,
        success: (function (data) {
            if (data.code == "000000") {
                var html = '';
                $.each(data.data, function(n, value) {
                    if(contract!=null&&contract.masterMembershipContract == value.contractId){
                        html += '<option value="' + value.contractId + '" selected>' + value.contractNumber + ' ' + value.contractStartDate + '-'+ value.contractEndDate + '</option>';
                    }else {
                        html += '<option value="' + value.contractId + '">' + value.contractNumber + ' ' + value.contractStartDate + '-'+ value.contractEndDate + '</option>';
                    }
                });
                $('#masterMembershipContractList').selectpicker('destroy').html(html).attr('disabled', false).selectpicker('refresh');
            } else {
                alert('会员主合同下拉框-请求失败，错误代码：' + data.code);
            }
        }),
        error: (function (res) {
            alert("会员主合同下拉框-请求失败");
        })
    });
}

function getFollowWaySelect(contract){
    //客户id
    var customerId = $('#customerList').val();
    $.ajax({
        type: 'GET',
        dataType: "json",
        url: '/clueFollow/selectClueFollowListByCustomerId?customerId=' + customerId,
        success: (function (data) {
            if (data.code == "000000") {
                var html = '';
                $.each(data.data, function(n, value) {
                    if(contract != null && contract.followRecordId == value.clueFollowId){
                        html += '<option value="' + value.clueFollowId + '" selected>' + value.followWayName + ' ' + value.followTm + '</option>';
                    }else {
                        html += '<option value="' + value.clueFollowId + '">' + value.followWayName + ' ' + value.followTm + '</option>';
                    }
                });
                $('#followRecordList').selectpicker('destroy').html(html).attr('disabled', false).selectpicker('refresh');
            } else {
                alert("跟进记录下拉框-请求失败");
            }
        }),
        error: (function (res) {
            alert("跟进记录下拉框-请求失败");
        })
    });
}

function getOpportunitySelect(){
    //客户id
    var customerId = $('#customerList').val();
    $.ajax({
        type: 'GET',
        dataType: "json",
        url: '/opportunity/selectOpportunityListByCustomerId?customerId=' + customerId,
        success: (function (data) {
            if (data.code == "000000") {
                var html = '';
                $.each(data.data, function(n, value) {
                    if(contract!=null&&contract.opportunityId == value.opportunityId){
                        html += '<option value="' + value.opportunityId + '" selected>' + value.opportunityTitle + '</option>';
                    }else {
                        html += '<option value="' + value.opportunityId + '">' + value.opportunityTitle + '</option>';
                    }
                });
                $('#opportunityList').html(html).attr('disabled', false).selectpicker('refresh');
                // 展开时重新获取数据
                /*$('#opportunityList').one('show.bs.select', function () {
                    getOpportunitySelect(contract);
                });*/
            } else {
                alert("赢单商机下拉框-请求失败");
            }
        }),
        error: (function (res) {
            alert("赢单商机下拉框-请求失败");
        })
    });
}

/**
 * 上传图片
 * */
//uploadImg fileSelected
var $fileUpLoad=$("#contractImg")
function uploadImg(type) {
    var $fileDom;
    if(type == 'contractImg'){
        $fileUpLoad = $("#contractImg");
        $fileDom = $('#contractPic');
    } else {
        $fileUpLoad = $("#examineImgBox");
        $fileDom = $('#examinedPic');
    }
    let fileToUpLoad = $fileUpLoad.prop('files')[0];
    // 功能：合同附件点取消按钮清空文件域内容
    if (!fileToUpLoad) {
        $fileDom.val('');
        return;
    }
    // 功能：限制上传文件大小为2M内
    if (fileToUpLoad && fileToUpLoad.size > 1 * 1024 * 1024) {
        promptInfo('附件最大为2M，请重新选择！', function () {
            $fileUpLoad.val('');
            $fileDom.val('');
        });
        return;
    }
    var formFile = new FormData();
    formFile.append("file", fileToUpLoad);
    var data = formFile;
    var imgId;
    $('#progress').show(0);
    $.ajax({
        url: '/file/uploadByOneFile',
        /*data: data,
        type: "POST",
        dataType: "json",
        async: false,
        cache: false,
        processData: false,
        contentType: false,*/
        type: 'POST',
        dataType: 'json',
        contentType: false,
        data: data,
        processData: false,
        xhr: function() {
            var xhr = new XMLHttpRequest();
            // 使用XMLHttpRequest.upload监听上传过程，注册progress事件，打印回调函数中的event事件
            xhr.upload.addEventListener('progress', function (e) {
                // console.log(e);
                // loaded代表上传了多少
                // total代表总数为多少
                var progressRate = (e.loaded / e.total) * 100 + '%';

                //通过设置进度条的宽度达到效果
                $('#progress > div').animate({
                    width: progressRate
                }, 100);
            })
            return xhr;
        },
        success: function (data) {
            if (data.code == "000000") {
                $fileUpLoad.prev().val(data.data.fileId)
                // obj.next('input.image-id').val(data.data.fileId)
                imgId = data.data.fileId;
            } else {
            }
        },
        error: (function (res) {
            $.alert(res);
        }),
        complete: function () {
            // 隐藏进度条
            $('#progress').hide(0, function () {
                $('#progress > div').css('width', '0%');
            });
        }
    });
    return imgId;
}

/*var formatePrice = function(val){
//金额转换 分->元 保留2位小数 并每隔3位用逗号分开 1,234.56
    var str = (val).toFixed(2) + '';
    var intSum = str.substring(0,str.indexOf(".")).replace( /\B(?=(?:\d{3})+$)/g, ',' );//取到整数部分
    var dot = str.substring(str.length,str.indexOf("."))//取到小数部分搜索
    var ret = intSum + dot;
    return ret;
}*/
/**
 * 新建合同提交操作
 */
function addCustomerContract(){
    // 会员单次
    if (contractTypeJudge == '7') {
        //客户id
        var customerId = $('#customerList').val();
        //客户名称
        var customerName = $('#customerList').find('option:selected').text();
        var customerType = $('#customerList').find('option:selected').attr('data-type');
        // 会员单次价格
        var singlePrice = $('#singlePrice').val();
        // 联系人id
        var contactId = '';
        // 联系人姓名
        var contactName = $('#customerContractName').val();
        //联系方式
        var contactDetails = $('#phoneNumber').val();
        //支付方式
        var paymentMethod = $('#paymentMethod').val();
        //是否加盖公章
        var applyElectronicContract = $('input[name="applyElectronicContract"]:checked').val();
        //合同附件
        var contractAnnexId = $('#contractPic').val();
        //合同审核
        var reviewAnnexId = $('#examinedPic').val();
        //审核备注
        var contractReviewNotes = $('#contractReviewNotes').val();

        $('#customerForm').bootstrapValidator({
            fields: {
                customerList: {
                    validators: {
                        notEmpty: {
                            message: '客户名称不能为空'
                        }
                    }
                },
                singlePrice: {
                    validators: {
                        notEmpty: {
                            message: '会员单次价格不能为空'
                        },
                        regexp: {
                            regexp: /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/,
                            message: '请输入正确的价格'
                        }
                    }
                },
                customerContractName: {
                    validators: {
                        notEmpty: {
                            message: '客户联系人不能为空'
                        }
                    }
                },
                phoneNumber: {
                    validators: {
                        notEmpty: {
                            message: '联系方式不能为空'
                        },
                        stringLength:{
                            max: 20,
                            message:'请输入正确的联系方式'
                        }
                    }
                },
                paymentMethod: {
                    validators: {
                        notEmpty: {
                            message: '支付方式不能为空'
                        }
                    }
                },
            }
        });
        $('#customerForm').bootstrapValidator('validate');
        if (!$("#customerForm").data('bootstrapValidator').isValid()) {
            return;
        }
        var jsonData = {
            contractType: contractTypeJudge,
            customerId,
            customerName,
            customerType,
            contactId,
            contactName,
            contactDetails,
            paymentMethod,
            applyElectronicContract,
            contractAnnexId,
            reviewAnnexId,
            contractReviewNotes,
            contractReceivables: singlePrice,
            customerContractProductAddQOList: [
                {
                    chose: '',
                    productId: '',
                    productName: '',
                    productCategories: '',
                    productMemberPrice: '',
                    productFinalPrice: singlePrice,
                    productQuantity: '',
                    productCode: ''

                }
            ]
        }
        console.log('会员单次合同数据：', jsonData);
        $.ajax({
            url: '/customerContract/addContractInformation',
            type: 'POST',
            dataType: "json",
            contentType: "application/json;charset=utf-8",
            data: JSON.stringify(jsonData),
            success: (function (data) {
                if(data.code == '000000'){
                    $.alert({
                        title: '提示',
                        content: '保存成功！',
                        buttons: {
                            confirm: {
                                text: '确认',
                                btnClass: 'btn-primary',
                                action: function () {
                                    //页面跳转赋值
                                    var $thisTabs = parent.$('.mt-nav-bar .nav-tabs').find('li.active');
                                    var navTab = parent.$multitabs._getNavTab($thisTabs);
                                    closeTab(navTab);
                                    openTab("合同列表","/front/contractManager/userContractForm");

                                    // 提交完表单，重新加载相关table列表页面
                                    refreshActivePane('/front/contractManager/userContractForm');

                                    delStorageAndRemove(navTab);
                                }
                            }
                        }
                    });
                }else if(data.code == 'CV0003'){
                    //余额不足,合同不能保存
                    $.alert(data.message);

                } else {
                    $.alert("保存失败");
                }
            }),
            error: (function (res) {
                $.alert("保存失败");
            })
        })
        return;
    }

    /*form*/


    //定义合同id
    var contractId = "";
    var orderId = "";
    var contractStatus = "";
    var paymentStatus = "";
    var contractReviewStatus = "";
    if(contract){
        //合同id
        contractId = contract.contractId;
        orderId = contract.productOrder.productOrderId;
        contractStatus = contract.contractStatus;
        paymentStatus = contract.paymentStatus;
        contractReviewStatus = contract.contractReviewStatus;
    }

    //合同类型
    // var contractType = $('#contractType').val();
    if(contract){
        var contractType = $('#contractType').val();
    }else{
        var contractType = contractTypeJudge
    }
    // var contractType = contractTypeJudge

    //客户id
    var customerId = $('#customerList').val();
    //客户名称
    var customerName = $('#customerList').find('option:selected').text();
    var customerType = $('#customerList').find('option:selected').attr('data-type');
    if (customerType == 1) {    // 个人联系人
        // 联系人id
        var contactId = '';
        // 联系人姓名
        var contactName = $('#customerContractName').val();
    } else {    // 企业联系人
        //客户联系人id
        var contactId = $('#customerContractList').val();
        //客户联系人名称
        var contactName = $.trim(($('#customerContractList').find('option:selected').text().split('—'))[0]);
    }
    //联系方式
    var contactDetails = $('#phoneNumber').val();
    //客户邮箱
    var customerEmail = $('#customerEmail').val();
/*    //合同续费
    var contractRenewal = $('#contractRenewal').val();*/
    //会员主合同
    var masterMembershipContract = $('#masterMembershipContractList').val();
    //合同起止日期
    var contractPeriodValidity = $("#contractDate").val().split('至');
    // 起止时间-开始时间
    var contractStartDate = $.trim(contractPeriodValidity[0]);
    // 起止时间-结束时间
    var contractEndDate = $.trim(contractPeriodValidity[1]);
    //回款日期
    var payBackDate = $('#collectionDate').val();
    //付款账号
    var paymentAccount = $('#paymentAccount').val();
    //支付方式
    var paymentMethod = $('#paymentMethod').val();
    //关联跟进记录
    var followRecordId = $('#followRecordList').val();
    //关联赢单商机
    var opportunityId = $('#opportunityList').val();
    //是否加盖公章
    var applyElectronicContract = $('input[name="applyElectronicContract"]:checked').val();
    //合作开发人员
    var coDeveloperList = $('#cooperateTable').bootstrapTable('getData', true);
    // coDeveloperIdList = $('#cooperateInput').val().split(',');
    //是否申请电子合同
    // var applyElectronicContract = $("input[name='apply']:checked").val();
    //提前/延期原因
/*    var advancePostponementReason = $('#advancePostponementReason').val();*/
    //是否保密
    var whetherKeepSecret = $("input[name='secrecy']:checked").val();

    //附加费用
    //金额
    var orderSurcharge = $('#surcharge').val();
    //备注
    var orderSurchargeRemark = $('#orderSurchargeRemark').val();

    //合同金额
    //合同总金额
    var contractTotalAmount = $("#totalAmount").text();

    //合同优惠总金额
    var contractDiscountTotalAmount = $("#discountAmount").text();
    // 上传审核图片
/*    var examineFile = $('#examineImg');
    // 合同优惠时，必须上传审核图片
    if($('#examineType').val() == 1 && !$('#examinedPic').val()){
        if (examineFile.val()) {
            //examineFile examineImgBox
            uploadImg('examineImgBox');
        } else {
            promptInfo("审核图片为必填项，请添加图片!");
            return;
        }
    }*/

    //合同实际总金额
    var contractActualTotalAmount = $("#realAmount").text();
    //应收款
    var contractReceivables= $("#receivables").text();

    //合同附件
    var contractAnnexId = $('#contractPic').val();
    //合同审核
    var reviewAnnexId = $('#examinedPic').val();
    //审核备注
    var contractReviewNotes = $('#contractReviewNotes').val();

    // 产品列表数据
    if (contractTypeJudge == '1' || contractTypeJudge == '2') {
        var productData = $('#productTable').bootstrapTable('getData', true);        // 产品列表数据
    } else {
        var productData = [];
    }
    var productArr = [];                                                            // 产品列表数组
    for (var i = 0; i < productData.length; i++) {
        if(contractTypeJudge==2){
            // type='productMemberPrice'
            var rowData = {
                chose: productData[i].chose || 'productMemberPrice',                    // 所选价格字段
                productId: productData[i].customerProductId,                            // 产品id
                productName: productData[i].productName,                                // 产品名称
                productCategories: productData[i].productCategories,                    // 产品分类--0:非会员;1:会员；
                productOriginalPrice: productData[i].productOriginalPrice,              // 原价
                productUnitPrice: productData[i].productUnitPrice,                      // 单价
                productMemberPrice: productData[i].productMemberPrice,                  // 会员价
                productFinalPrice: productData[i].productDiscountPrice,                 // 当前报价
                productTotalPrice: productData[i].productTotalPrice,                    // 总计价格
                productQuantity: productData[i].productNumber,                          // 数量
                productCode:productData[i].productCode,                                 // 产品编码
            }
        }else{
            var rowData = {
                chose: productData[i].chose || 'productUnitPrice',                      // 所选价格字段
                productId: productData[i].customerProductId,                            // 产品id
                productName: productData[i].productName,                                // 产品名称
                productCategories: productData[i].productCategories,                    // 产品分类--0:非会员;1:会员；
                productOriginalPrice: productData[i].productOriginalPrice,              // 原价
                productUnitPrice: productData[i].productUnitPrice,                      // 单价
                productMemberPrice: productData[i].productMemberPrice,                  // 会员价
                productFinalPrice: productData[i].productDiscountPrice,                 // 当前报价
                productTotalPrice: productData[i].productTotalPrice,                    // 总计价格
                productQuantity: productData[i].productNumber,                          // 数量
                productCode:productData[i].productCode,                                 // 产品编码
            }
        }
        if (productData[i].productDiscountPrice == '') {
            $.alert({
                title: '温馨提示',
                content: '产品当前报价不能为空，请重新输入',
                scrollToPreviousElement: false,
                scrollToPreviousElementAnimate: false,
                buttons: {
                    confirm: {
                        text: '确认',
                        btnClass: 'btn-primary',
                        action: function () {
                            // e.preventDefault();
                            $('#productDiscountPrice' + i).focus();
                            return;
                        }
                    }
                }
            });
            return;
        }
        productArr.push(rowData);
    }

    // 活动产品列表数据
   var productActivityData = $('#productActivityTable').bootstrapTable('getData', true);
    var productActivityArr = [];// 活动产品列表数组
       for (var i = 0; i < productActivityData.length; i++) {
          var rowData = {
              productActivityId: productActivityData[i].productActivityId,            // 活动id
              productActivityName: productActivityData[i].productActivityName,        // 活动名称
              productOriginalPrice: productActivityData[i].activityPrice,             // 活动原价
              productFinalPrice: productActivityData[i].activityDiscountPrice,        // 活动优惠价
              productQuantity: productActivityData[i].activityNumber,                 // 活动数量
              ifMemberActivity: productActivityData[i].ifMemberActivity,               // 状态
              productList:productActivityData[i].productList
          }
           if (productActivityData[i].activityDiscountPrice == '') {
               $.alert({
                   title: '温馨提示',
                   content: '活动产品当前报价不能为空，请重新输入',
                   scrollToPreviousElement: false,
                   scrollToPreviousElementAnimate: false,
                   buttons: {
                       confirm: {
                           text: '确认',
                           btnClass: 'btn-primary',
                           action: function () {
                               // e.preventDefault();
                               $('#activityDiscountPrice' + i).focus();
                               return;
                           }
                       }
                   }
               });
               return;
           }
          productActivityArr.push(rowData);
      }
    // 赠品列表数据
    var giftData = $('#giftTable').bootstrapTable('getData', true);
    var giftArr = [];
    for (var i = 0; i < giftData.length; i++) {
        var giftProductListArr = [];                                                // 赠品列表数组
        for (var j = 0; j < giftData[i].giftProductList.length; j++) {
            var giftRowData = {
                giftProductId: giftData[i].giftProductList[j].productId,            // 赠品id
                giftProductName: giftData[i].giftProductList[j].productName,        // 赠品名称
                giftQuantity: giftData[i].giftProductList[j].giftNumber,            // 赠品数量
                giftUnitPrice: giftData[i].giftProductList[j].productUnitPrice,            // 赠品单价
                giftOriginalPrice: giftData[i].giftProductList[j].productOriginalPrice,            // 赠品原价
                productCategories: giftData[i].giftProductList[j].productCategories,            // 赠品id

            }
            giftProductListArr.push(giftRowData);
        }
        var rowData = {
            productGiftActivityId: giftData[i].productGiftActivityId,               // 赠品活动id
            giftActivityName: giftData[i].giftActivityName,                         // 赠品活动名称
            product_name: giftData[i].productName,                                  // 产品名称
            // giftPriceStart: giftData[i].giftActivityPriceStart,
            // giftPriceEnd: giftData[i].giftActivityPriceEnd,
            // giftCategory: giftData[i].giftCategory,
            // giftPeriodValidityStart: giftData[i].giftPeriodValidityStart,
            // giftPeriodValidityEnd: giftData[i].giftPeriodValidityEnd,
            giftProductList: giftProductListArr,                                    // 赠品列表
        }
        giftArr.push(rowData);
    }

    var couponTableData = $('#couponTable').bootstrapTable('getData', true);
    var couponData = [];
    if (couponTableData.length) {
        for (let i = 0; i < couponTableData.length; i++) {
            var couponList = {};
            couponList.chsCustomerCouponId = couponTableData[i].chsCustomerCouponId;
            couponList.receiveCouponId = couponTableData[i].receiveCouponId;
            couponList.couponName = couponTableData[i].couponName;
            couponList.couponType = couponTableData[i].couponType;
            couponList.couponQuota = couponTableData[i].couponQuota;
            couponList.couponDiscount = couponTableData[i].couponDiscount;
            couponData.push(couponList);
        }
    } else {
        couponData = null;
    }

    // console.log(couponData)

    // //合同类型判空提示
    // if (!contractType) {
    //     promptInfo("合同类型不能为空!");
    //     return;
    // }

    $('#customerForm').bootstrapValidator({

        fields: {
            customerList: {
                // message: '用户名验证失败',
                validators: {
                    notEmpty: {
                        message: '客户名称不能为空'
                    }
                }
            },
            customerEmail: {
                validators: {
                    notEmpty: {
                        message: '客户邮箱不能为空'
                    },
                    emailAddress: {
                        message: '邮箱地址格式有误'
                    }
                }
            },
            customerContractList: {
                validators: {
                    notEmpty: {
                        message: '客户联系人不能为空'
                    }
                }
            },
            customerContractName: {
                validators: {
                    notEmpty: {
                        message: '客户联系人不能为空'
                    }
                }
            },
            phoneNumber: {
                validators: {
                    notEmpty: {
                        message: '联系方式不能为空'
                    },
                    /*regexp: {
                        regexp: /^\d+$/,
                        message: '手机号码只能是数字'
                    },*/
                    stringLength:{
                        max: 20,
                        message:'请输入正确的联系方式'
                    }
                }
            },
            contractDate: {
                validators: {
                    /*notEmpty: {
                        message: '合同起止日期不能为空'
                    },*/
                    callback: {
                        callback: function(value, validator) {
                            if (value) {
                                var dateArr = value.split(' 至 ');
                                var dateReg = /((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))/;
                                // 日期格式验证(至两侧空格不能省略)
                                if (dateArr[0].length > 10) {
                                    return {valid: false, message: '修改的合同起止日期格式不正确，请重新选择或输入正确的日期格式(YYYY-MM-DD 至 YYYY-MM-DD)'};
                                }
                                // 验证开始日期格式
                                if (!dateReg.test(dateArr[0])) {
                                    return {valid: false, message: '合同开始日期格式不正确，请选择或输入正确的日期格式(YYYY-MM-DD)'};
                                }
                                // 验证结束日期格式
                                if (!dateReg.test(dateArr[1])) {
                                    return {valid: false, message: '合同结束日期格式不正确，请选择或输入正确的日期格式(YYYY-MM-DD)'};
                                }
                                // 验证结束日期是否大于开始日期
                                if (moment(dateArr[1]).isBefore(dateArr[0])) {
                                    return {valid: false, message: '合同结束日期不能早于开始日期，请选择或输入正确的起止日期(YYYY-MM-DD 至 YYYY-MM-DD)'};
                                }
                                return true;
                            } else {
                                return {valid: false, message: '合同起止日期不能为空'};
                            }
                        }
                    }
                }
            },

            paymentMethod: {
                validators: {
                    notEmpty: {
                        message: '支付方式不能为空'
                    }
                }
            },
            followRecordList: {
                validators: {
                    notEmpty: {
                        message: '关联跟进记录不能为空'
                    }
                }
            },
            opportunityList: {
                validators: {
                    notEmpty: {
                        message: '关联赢单商机不能为空'
                    }
                }
            }
        },

    })

    $("#customerForm").bootstrapValidator('validate');//提交验证
    if (!$("#customerForm").data('bootstrapValidator').isValid()) {//获取验证结果，如果成功，执行下面代码
        $("html,body").animate({
            scrollTop: 0
        }, 500);
        return;
    }

    // 附加费用不为空时,备注必填验证
    if (orderSurcharge != '' && orderSurchargeRemark == '') {
        promptInfo('附加费用备注不能为空!', function () {
            $('#orderSurchargeRemark').focus();
        });
        return;
    }

    // 合同附件判空提示
    if (!contractAnnexId) {
        // 上传合同附件
        var contractFile = $('#contractImg');
        // 合同附件不为空上传图片并返回图片id
        if (contractFile.val()) {
            //contractFile
            contractAnnexId = uploadImg('contractImg');
        } else {
            /*promptInfo("合同附件为必填项");
            $("#submit").attr("disabled",false)

            return;*/
        }
    }

    // 审核附件判空提示
    /*console.log($('#examineType').val() == 1 ,!reviewAnnexId)
    if($('#examineType').val() == 1 &&!reviewAnnexId){
        promptInfo("合同审核材料必须上传!");
        $("#submit").attr("disabled",false)
        return;
    }*/

    // 审核备注判空提示
    /*if($('#examineType').val() == 1 &&!contractReviewNotes){
        promptInfo("审核备注必填!");
        $("#submit").attr("disabled",false)
        return;
    }*/


    if(contractTypeJudge==2 || contractTypeJudge==1){
        if(productArr.length==0){
            promptInfo("产品不能为空!");
            $("#submit").attr("disabled",false)
            return;
        }
    }else{
        if(productActivityArr.length==0){
            promptInfo("活动产品不能为空!");
            $("#submit").attr("disabled",false)
            return;
        }
    }

    // 验证合作开发人员分配金额
    for (let i = 0; i < coDeveloperList.length; i++) {
        if (coDeveloperList[i].allocationMount == '') {
            $.alert({
                title: '温馨提示',
                content: '合作开发人员分配金额不能为空，请输入！',
                scrollToPreviousElement: false,
                scrollToPreviousElementAnimate: false,
                buttons: {
                    confirm: {
                        text: '确认',
                        btnClass: 'btn-primary',
                        action: function () {
                            // e.preventDefault();
                            $('#allOcation-' + i).focus();
                            return;
                        }
                    }
                }
            });
            return;
        }
    }

    // $('#submit').attr('disabled', true).html('<label><i class="mdi mdi-spin mdi-loading"></i></label>正在提交');

    var jsonData = {
        "contractId":contractId,
        "orderId":orderId,
        "contractType":contractType,
        "customerId":customerId,
        "customerName":customerName,
        "customerType":customerType,
        "contactId":contactId,
        "contactName":contactName,
        "contactDetails":contactDetails,
        "customerEmail":customerEmail,
        //"contractRenewal":contractRenewal,
        "masterMembershipContract":masterMembershipContract,
        "contractNewStartDate":contractStartDate,
        "contractNewEndDate":contractEndDate,
        // "payBackDate":payBackDate,//日期回款
        "paymentAccount":paymentAccount,
        "paymentMethod":paymentMethod,
        "followRecordId":followRecordId,
        "opportunityId":opportunityId,
        "applyElectronicContract":applyElectronicContract,
        "coDeveloperList":coDeveloperList,
        // "applyElectronicContract":applyElectronicContract, //电子合同
        //"advancePostponementReason":advancePostponementReason,
        // "whetherKeepSecret":whetherKeepSecret, //保密
        "contractStatus":contractStatus,
        "paymentStatus":paymentStatus,
        "contractReviewStatus":contractReviewStatus,
        //附加费用
        "orderSurcharge":orderSurcharge,
        "orderSurchargeRemark":orderSurchargeRemark,
        //合同金额
        "contractTotalAmount":contractTotalAmount,
        "contractDiscountTotalAmount":contractDiscountTotalAmount,
        "contractActualTotalAmount":contractActualTotalAmount,
        "contractReceivables":contractReceivables,
        "contractAnnexId":contractAnnexId,
        "reviewAnnexId":reviewAnnexId,
        "contractReviewNotes":contractReviewNotes,
        //产品、活动、赠品活动参数
        "customerContractProductAddQOList": productArr,
        "customerActivityProductAddQOList": productActivityArr,
        "customerGiftActivityProductAddQOList": giftArr,
        "contractCouponQOList": couponData
    };

    console.log(jsonData);

    // 提交操作禁用按钮状态，显示提交效果
    $('button#submit').prop('disabled', true).find('i').addClass('mdi-spin mdi-loading');

    $.ajax({
        url: '/customerContract/addContractInformation',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if(data.code == '000000'){
                $.alert({
                    title: '提示',
                    content: '保存成功！',
                    buttons: {
                        confirm: {
                            text: '确认',
                            btnClass: 'btn-primary',
                            action: function () {
                                //页面跳转赋值
                                var $thisTabs = parent.$('.mt-nav-bar .nav-tabs').find('li.active');
                                var navTab = parent.$multitabs._getNavTab($thisTabs);
                                closeTab(navTab);
                                openTab("合同列表","/front/contractManager/userContractForm");

                                // 提交完表单，重新加载相关table列表页面
                                refreshActivePane('/front/contractManager/userContractForm');

                                delStorageAndRemove(navTab);
                            }
                        }
                    }
                });
            } else if(data.code == 'CV0001'){
                //合同不能编辑
                $.alert(data.message);
            } else if(data.code == 'CV0002'){
                //没有会员产品合同不能保存
                $.alert(data.message);

            } else if(data.code == 'CV0003'){
                //余额不足,合同不能保存
                $.alert(data.message);

            }else {
                $.alert("保存失败");
            }
        }),
        error: (function (res) {
            $.alert("保存失败");
        }),
        complete: function () {
            // 提交完成重置按钮效果
            $('button#submit').prop('disabled', false).find('i').removeClass('mdi-spin mdi-loading');
        }
    })

}

/**
 * 提示信息
 * @param content  提示内容
 */
function promptInfo(content, callBack) {
    $.alert({
        title: '温馨提示',
        content: content,
        scrollToPreviousElement: false,
        scrollToPreviousElementAnimate: false,
        buttons: {
            confirm: {
                text: '确认',
                btnClass: 'btn-primary',
                action: callBack
            }
        }
    });
}
/**
 * 会员产品tab
 * */
function contractProductList(url, data, contentType, sortableFlag){
    $('#productListTable').bootstrapTable('destroy');
    // $('#productListTable').bootstrapTable('refresh');
    $('#productListTable').bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: url,// '/customerMemberProduct/selectContractMemberProductList',//请求地址
        method: 'post',//请求方式
        contentType: contentType,//请求内容类型
        dataType: "json",                   // 数据类型
        striped: true,                      // 是否显示行间隔色
        sortable: true,                     // 是否启用排序
        sortOrder: "desc",                  // 排序方式
        sortName: 'productName',            // 排序字段
        cache: false,                       // 是否使用缓存
        showColumns: false,                 // 显示隐藏列
        showRefresh: false,                 // 显示刷新按钮
        showToggle: false,                  // 切换显示样式
        showFooter: false,                  // 显示Table脚部
        pagination: true,                   // 是否显示分页
        showPaginationSwitch: false,        // 是否显示分页按钮
        clickToSelect: true,                // 是否启用点击选中行
        maintainSelected: true,             // 分页是否保留选中
        singleSelect: false,
        minimumCountColumns: 2,             // 最少要显示的列数
        undefinedText: '-',                  // cell没有值时显示
        sidePagination: "server",           // 分页方式：client客户端分页，server服务端分页
        // serverSort: true,
        uniqueId: 'customerProductId',
        idField: 'customerProductId',
        pageSize: 5,                        // 每页的记录行数
        pageNumber: 1,                      // 初始化加载第1页，默认第1页
        pageList: "[5, 10, 15, 20]",        // 可供选择的每页的行数

        serverSelected: true,// 开启后端分页记住已选项功能
        serverSelectedField: "customerProductId",// 已选项的唯一识别主键

        // queryParams: productQueryParams,//查询参数
        queryParams: data,//查询参数
        columns: [
            {title: '主键', field: 'customerProductId', visible: false},
            {checkbox: true, visible: true},
            {title: '产品名称', field: 'productName', sortable: sortableFlag, align: 'left', valign: 'middle'},
            {title: '产品类别', field: 'productCategories', align: 'left', valign: 'middle',visible: false},
            {title: '产品原价', field: 'productOriginalPrice', align: 'left', valign: 'middle'},
            {title: '产品单价', field: 'productUnitPrice', align: 'left', valign: 'middle'},
            {title: '产品会员价', field: 'productMemberPrice', align: 'left', valign: 'middle'},
        ],
        responseHandler: function (result) {
            if(result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function (data) {
            // console.log(data)
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}
contractProductList('/customerMemberProduct/selectContractMemberProductList',dataContract,'application/json;charset=utf-8')

//活动产品列表-添加活动产品
function productActivityListTable() {
    $('#productActivityListTable').bootstrapTable('destroy');
    $('#productActivityListTable').bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        // url: '/customerProductActivity/selectCustomerProductActivityList',//请求地址
        url: '/customerProductActivity/selectValidityPeriodCustomerActivityList',//请求地址
        method: 'get',                                         //请求方式
        contentType: "application/x-www-form-urlencoded",       //请求内容类型
        dataType: "json",                                       //数据类型
        striped: true,                                          //是否显示行间隔色
        sortable: true,                                         //是否启用排序
        sortOrder: "desc",                                      //排序方式
        sortName: 'createTm',                                   //排序字段
        cache: false,                                           //是否使用缓存
        showColumns: false,                                     //显示隐藏列
        showRefresh: false,                                     //显示刷新按钮
        showToggle: false,                                      //切换显示样式
        showFooter: false,                                      //显示Table脚部
        pagination: true,                                       //是否显示分页
        showPaginationSwitch: false,                            //是否显示分页按钮
        clickToSelect: true,                                    //是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,                                 //最少要显示的列数
        undefinedText: '-',                                      //cell没有值时显示
        sidePagination: "server",                               //分页方式：client客户端分页，server服务端分页
        uniqueId: 'productActivityId',
        idField: 'productActivityId',

        serverSelected: true,// 开启后端分页记住已选项功能
        serverSelectedField: "productActivityId",// 已选项的唯一识别主键

        pageSize: 5,                                            //每页的记录行数
        pageNumber: 1,                                          //初始化加载第1页，默认第1页
        pageList: "[5, 10, 15, 20]",                            //可供选择的每页的行数
        queryParams: activityQueryParams,                       //查询参数
        columns: [
            {title: '主键', field: 'productActivityId', visible: false},
            {checkbox: true, visible: true},
            {title: '活动名称',field: 'productActivityName',align: 'left', valign: 'middle'},
            {title: '活动价格', field: 'activityPrice',align: 'left', valign: 'middle'},
            {title: '相关产品', field: 'productList',align: 'left', valign: 'middle', formatter: activityFormat.productList},
        ],
        responseHandler: function (result) {
            if(result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function (data) {
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

function productNoMember() {
    // 非会员产品列表
    $('#productTable').bootstrapTable('destroy');
    $('#productTable').bootstrapTable({
        class: 'table table-bordered table-hover table-striped',
        striped: true,                  // 是否显示行间隔色
        sortable: true,                 // 是否启用排序
        pagination: false,              // 是否显示分页
        minimumCountColumns: 2,         // 最少要显示的列数
        undefinedText: '-',        // cell没有值时显示
        toolbar: '#productTableToolbar',
        uniqueId: 'customerProductId',
        columns: [
            {title: '主键', field: 'customerProductId', visible: false},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle'},
            {title: '产品类别', field: 'productCategories', align: 'left', valign: 'middle',visible: false},
            {title: '产品原价', field: 'productOriginalPrice', align: 'left', valign: 'middle'},
            {title: '产品单价', field: 'productUnitPrice', align: 'left', valign: 'middle'},
            {title: '产品会员价', field: 'productMemberPrice', align: 'left', valign: 'middle'},
            {title: '当前报价', field: 'productDiscountPrice', align: 'left', valign: 'middle', width: '160', events: productFormat.priceEvent, formatter: productFormat.discountPrice},
            {title: '产品数量', field: 'productNumber', align: 'left', valign: 'middle', width: '160', events: productFormat.numberEvent, formatter: productFormat.number},
            {title: '操作', field: 'productOperation', align: 'right', valign: 'middle', width: '100', formatter: productFormat.operation},
            {title: '产品编码', field: 'productCode', visible: false},
        ],
        onPostBody: function (data) {
            // 设置开关，如果当前报价为空，不进行合同金额计算
            /*var totalFlag = Boolean(data.length);
            if (!totalFlag) {
                return;
            }*/
            var totalFlag = true;
            var examineFlag = false;

            var productPriceTotal = 0;          // 产品总金额 = 产品原价 * 数量
            var valuationTotal = 0;             // 计价总计  = 当前报价 * 数量
            var productMemberPriceTotal = 0;    // 产品会员价

            for (var i = 0; i < data.length; i++) {
                valuationTotal += data[i].productDiscountPrice * data[i].productNumber * 100;
                productPriceTotal += data[i].productOriginalPrice * data[i].productNumber * 100;
                productMemberPriceTotal += data[i].productMemberPrice * data[i].productNumber * 100;
                if (data[i].productDiscountPrice == '') {
                    totalFlag = false;
                }
                // 当前报价小于会员价 && 不为空 => 触发审核
                if (data[i].productDiscountPrice < data[i].productMemberPrice && data[i].productDiscountPrice != '') {
                    examineFlag = true;
                    $('#examineType').val('1');
                } else {
                    $('#examineType').val('0');
                }
            }

            // 还原数值
            productPriceTotal = productPriceTotal / 100;                // 产品总金额 = 产品原价 * 数量
            valuationTotal = valuationTotal / 100;                      // 计价总计  = 当前报价 * 数量
            productMemberPriceTotal = productMemberPriceTotal / 100;    // 产品会员价

            // 优惠券按钮开关
            if (data.length == 1 && totalFlag) {
                $('#couponTableToolbar button').prop('disabled', false);
            } else {
                $('#couponTableToolbar button').prop('disabled', true);
                $('#couponTable').bootstrapTable('removeAll');
            }

            // 表格右上方计价总计赋值
            $('#productTotal').html(valuationTotal);
            // 隐藏域赋值：计价总计
            $('#productTotalInput').val(valuationTotal);
            // 会员产品总金额
            $('#productDiscountTotalInput').val(productPriceTotal);

            // 统计价格: 报价不为空进行总价计算并判断是否触发审批，为空则合同金额归零
            if (totalFlag) {
                // 价格统计
                priceTotal();
                // 审核判断：报价小于会员价则触发审批
                if (examineFlag) {
                    // 触发审核
                    $('.approval').show(0);
                } else {
                    // 不触发审核
                    $('.approval').hide(0);
                    $('.approval').find('input, textarea').val('');
                }
            } else {
                // 当前报价为空时，合同金额归零处理并隐藏审核条件
                $('#totalAmount, #discountAmount, #realAmount, #receivables').html('0');
                $('.approval').hide(0);
                $('.approval').find('input, textarea').val('');
            }

            if (addFlag) {
                getProductGift(data, valuationTotal);
            }
        },
        onLoadSuccess: function (data) {
        },
    });
}

function productMember() {
    // 会员产品列表
    $('#productTable').bootstrapTable('destroy');
    $('#productTable').bootstrapTable({
        class: 'table table-bordered table-hover table-striped',
        striped: true,                  // 是否显示行间隔色
        sortable: true,                 // 是否启用排序
        pagination: false,              // 是否显示分页
        minimumCountColumns: 2,         // 最少要显示的列数
        undefinedText: '-',        // cell没有值时显示
        uniqueId: 'customerProductId',
        toolbar: '#productTableToolbar',
        columns: [
            {title: '主键', field: 'customerProductId', visible: false},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle'},
            {title: '产品类别', field: 'productCategories', align: 'left', valign: 'middle',visible: false},
            {title: '产品原价', field: 'productOriginalPrice', align: 'left', valign: 'middle'},
            {title: '产品单价', field: 'productUnitPrice', align: 'left', valign: 'middle'},
            {title: '产品会员价', field: 'productMemberPrice', align: 'left', valign: 'middle'},
            {title: '当前报价', field: 'productDiscountPrice', align: 'left', valign: 'middle', width: '160', events: productFormat.priceEvent, formatter: productFormat.discountPrice},
            {title: '产品数量', field: 'productNumber', align: 'left', valign: 'middle', width: '160', events: productFormat.numberEvent, formatter: productFormat.number},
            {title: '操作', field: 'productOperation', align: 'right', valign: 'middle', width: '100', formatter: productFormat.operation},
            {title: '产品编码', field: 'productCode', visible: false},
        ],
        onPostBody: function (data) {
            // 设置开关，如果当前报价为空，不进行合同金额计算
            /*var totalFlag = Boolean(data.length);
            if (!totalFlag) {
                return;
            }*/
            var totalFlag = true;
            var examineFlag = false;

            var productMemberPriceTotal = 0;        // 会员产品总金额 = 会员价 * 数量
            var valuationTotal = 0;                 // 计价总计      = 当前报价 * 数量

            for (var i = 0; i < data.length; i++) {
                valuationTotal += data[i].productDiscountPrice * data[i].productNumber * 100;
                productMemberPriceTotal += data[i].productMemberPrice * data[i].productNumber * 100;
                if (data[i].productDiscountPrice == '') {
                    totalFlag = false;
                }
                // 当前报价小于会员价 && 不为空 => 触发审核
                /*if (data[i].productDiscountPrice < data[i].productMemberPrice && data[i].productDiscountPrice != '') {
                    console.log('当前报价小于会员价,触发审核');
                    examineFlag = true;
                    $('#examineType').val('1');
                } else {
                    console.log('未触发审核');
                    $('#examineType').val('0');
                }*/
            }

            // 还原数值
            productMemberPriceTotal = productMemberPriceTotal / 100;        // 会员产品总金额 = 会员价 * 数量
            valuationTotal = valuationTotal / 100;                          // 计价总计      = 当前报价 * 数量

            // 会员产品默认始终触发审核条件，但非必填
            // $('#examineType').val('1');
            $('.approval').show(0);

            // 优惠券按钮开关
            if (data.length == 1 && totalFlag) {
                $('#couponTableToolbar button').prop('disabled', false);
            } else {
                $('#couponTableToolbar button').prop('disabled', true);
                $('#couponTable').bootstrapTable('removeAll');
            }

            // 表格右上方计价总计赋值
            $('#productTotal').html(valuationTotal);
            // 隐藏域赋值：计价总计
            $('#productTotalInput').val(valuationTotal);
            // 会员产品总金额
            $('#productDiscountTotalInput').val(productMemberPriceTotal);

            // 统计价格: 报价不为空进行总价计算并判断是否触发审批，为空则合同金额归零
            if (totalFlag) {
                // 价格统计
                priceTotal();
                // 审核判断：报价小于会员价则触发审批
                /*if (examineFlag) {
                    // 触发审核
                    $('.approval').show(0);
                } else {
                    // 不触发审核
                    $('.approval').hide(0);
                    $('.approval').find('input, textarea').val('');
                }*/
            } else {
                // 当前报价为空时，合同金额归零处理并隐藏审核条件
                $('#totalAmount, #discountAmount, #realAmount, #receivables').html('0');
                // $('.approval').hide(0);
                // $('.approval').find('input, textarea').val('');
            }

            if (addFlag) {
                getProductGift(data, valuationTotal);
            }
        },
        onLoadSuccess: function (data) {
        },
    });
}

function giftFun() {
    // 赠品列表
    $('#giftTable').bootstrapTable('destroy');
    $('#giftTable').bootstrapTable({
        class: 'table table-bordered table-hover table-striped',
        striped: true,                      // 是否显示行间隔色
        sortable: true,                     // 是否启用排序
        pagination: false,                  // 是否显示分页
        minimumCountColumns: 2,             // 最少要显示的列数
        undefinedText: '-',            // cell没有值时显示
        detailView: true,
        detailViewByClick: true,
        detailViewIcon: false,
        uniqueId: 'productGiftActivityId',
        detailFormatter:function(index,row){
            var giftListArr = row.giftProductList;
            var html = '';
            for (var i = 0; i < giftListArr.length; i++) {
                html += '<span class="label label-warning">' + giftListArr[i].productName + '</span>';
            }
            return html;
        },
        columns: [
            {title: '主键', field: 'productGiftActivityId', visible: false},
            {title: '标识', field: 'giftListId', visible: false},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle', formatter: giftFormat.name},
            {title: '价格区间', field: 'giftActivityPrice', align: 'left', valign: 'middle', formatter: giftFormat.price},
            {title: '活动名称', field: 'giftActivityName', align: 'left', valign: 'middle'},
            {title: '活动类型', field: 'giftCategoryName', align: 'left', valign: 'middle'},
            {title: '活动有效期', field: 'giftPeriodValidity', align: 'left', valign: 'middle', formatter: giftFormat.periodValidity},
            {title: '操作', field: 'giftOperate', align: 'right', valign: 'middle', width: '100', formatter: giftFormat.operate},
        ],
        onPostBody(data) {
            $('#giftTable').bootstrapTable('expandAllRows');
        }
    });
}
giftFun()

function changeTab(type){
    // 切换标签重置提交按钮
    $('button#submit').prop('disabled', false).find('i').removeClass('mdi-spin mdi-loading');

    // 切换标签重置并隐藏合作开发人员模块
    hideCooperate();
    
    // 切换标签清空form验证状态
    if ($('#customerForm').data('bootstrapValidator')) {
        $('#customerForm').data('bootstrapValidator').destroy();
        $('#customerForm').data('bootstrapValidator', null);
    }

    // 清空合同附件
    $('#contractPic, #contractImg').val('');

    /*** //member,noMember为会员，非会员合同时都只显示产品列表，不显示活动产品列表
     //是否是会员判断 有无 合同起止时间*/
    $('#productTable').bootstrapTable('refresh');
    $('#productTable').bootstrapTable('destroy');

    $('#giftTable').bootstrapTable('refresh');
    $('#giftTable').bootstrapTable('destroy');
    giftFun()


    if (type != 'single') {
        $('.body-height').removeClass('single-body');
        $('#phoneNumber').prop('readonly', true);
        $('#phoneNumber').prop('placeholder', '');
    }

    $('#productCategories').hide();
    if(type=='member'){
        $('#productModalType').val('1');
        $(".showFirst").load(location.href+" .showFirst");
        contractTypeJudge=2
        flagIsMember=true
        $(".isMember").show();
        $('.approval').show();

        // 初始化会员产品表
        productMember();

        setTimeout(function () {
            timeData('contractDate', 'contractDate', 'customerForm');
            contractProductList('/customerMemberProduct/selectContractMemberProductList',dataContract,'application/json;charset=utf-8')
            getCustomerSelect(contract,urlCustomer);
            $('select').selectpicker('refresh');
            // 支付方式修改：隐藏显示合作开发人员列表
            $('#paymentMethod').on('changed.bs.select', function () {
                if ($(this).val() == 3) {
                    // 余额支付重置并隐藏合作开发人员
                    hideCooperate();
                } else if ($(this).val() == 2) {
                    // 线下支付显示合作开发人员
                    $('.cooperate-well').show();
                }
            });
        },100)
        $(".active-contract").show()
        $(".member-contract").hide()


    }else if(type=='noMember'){
        $('#productModalType').val('0');
        $('#productCategories').show();
        $(".showFirst").load(location.href+" .showFirst");
        $('.approval').hide(0);
        contractTypeJudge=1
        flagIsMember=false

        // 初始化非会员产品表
        productNoMember();
        // $(".isMember").hide()
        setTimeout(function () {
            timeData('contractDate', 'contractDate', 'customerForm');
            contractProductList('/customerProduct/selectCustomerProductList',productQueryParams,'application/x-www-form-urlencoded')
            // getCustomerSelect(contract,'/customerController/getNonMemberContractCustomerList');
            getCustomerSelect(contract,urlCustomer);
            $('select').selectpicker('refresh');
            // 支付方式修改：隐藏显示合作开发人员列表
            $('#paymentMethod').on('changed.bs.select', function () {
                if ($(this).val() == 3) {
                    // 余额支付重置并隐藏合作开发人员
                    hideCooperate();
                } else if ($(this).val() == 2) {
                    // 线下支付显示合作开发人员
                    $('.cooperate-well').show();
                }
            });
        },100)
        $(".active-contract").show()
        $(".member-contract").hide()
        // $('#customerForm')[0].reset();
    } else if (type == 'single') {  // 会员单次
        contractTypeJudge = 7;
        $('.body-height').addClass('single-body');
        $(".showFirst").load(location.href+" .showFirst");
        setTimeout(function () {
            // getCustomerSelect(contract, '/customerController/getMemberCustomerList');
            getCustomerSelect(contract, urlCustomer);
            $('#phoneNumber').prop('readonly', false);
            $('#phoneNumber').prop('placeholder', '请输入联系方式');
            $('#paymentMethod').selectpicker('refresh');
        }, 100);
    } else{
        contractTypeJudge=3
        $(".active-contract").hide()
        $(".member-contract").show()
        $('.approval').hide(0);
        //赠品隐藏
        $(".gift-contract").hide()
        $(".showFirst").load(location.href+" .showFirst");
        setTimeout(function () {
            timeData('contractDate', 'contractDate', 'customerForm');
            getCustomerSelect(contract,urlCustomer);
            $('select').selectpicker('refresh');
            // 支付方式修改：隐藏显示合作开发人员列表
            $('#paymentMethod').on('changed.bs.select', function () {
                if ($(this).val() == 3) {
                    // 余额支付重置并隐藏合作开发人员
                    hideCooperate();
                } else if ($(this).val() == 2) {
                    // 线下支付显示合作开发人员
                    $('.cooperate-well').show();
                }
            });
        },100)
        // 切换标签后清空优惠券列表并禁用添加优惠券按钮
        $('#couponTable').bootstrapTable('removeAll');
        $('#couponTableToolbar button').prop('disabled', true);
    }
}

/**
 * 功能：重置合作开发人员模块内容并隐藏
 * */
function hideCooperate() {
    var $cooperateWell = $('#cooperateWell');
    $cooperateWell.find('select').val('').selectpicker('refresh');
    $cooperateWell.find('select#accountList').prop('disabled', true).selectpicker('refresh');
    $('#cooperateTable').bootstrapTable('removeAll');
    $cooperateWell.hide();
}


